论坛首页 Java企业应用论坛

一道简单笔试题,你给力吗?

浏览 18346 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2010-12-25   最后修改:2010-12-27

一道简单笔试题,你给力吗?

 

先申明:大虾们就别看了哈,你们懂的~

 

没看过的同学就当学习,

看过了的同学就当温习。

 

 

祝大家天天进步~

 

public class Problems {
	
	//判断是否为奇数,是就返回true
	public static boolean isOdd(int i){
		return i % 2==1;    
	}
	
	public static void main(String[] args){
		for(int i=-2;i<=2;i++){
		System.out.println(isOdd(i));
		}
		System.out.println(2.00-1.10);
	}
	//请问,这段程序将会输出什么?
           //请解释并优化该代码
}

 

   发表时间:2010-12-25  
我觉得是


false
true
false
true
false
0.9

0 请登录后投票
   发表时间:2010-12-26  


嗯,答案就是

false
false
false
true
false
0.8999999999999999

分析下

  负奇数 % 2 时,是等于-1的~

  所以,把isOdd改为
  return i%2 !=0 ;
 
  就好啦~~


  2.00-1.10那个。。
  貌似是java对浮点数的表示的方面有问题。。
0 请登录后投票
   发表时间:2010-12-26  
额...我做对了....
不过啊 你的注释是错的..有误导之嫌哦~~~~~~~
0 请登录后投票
   发表时间:2010-12-26   最后修改:2010-12-26
贫僧不吃肉 写道

  2.00-1.10那个。。
  貌似是java对浮点数的表示的方面有问题。。

经典的精度丢失问题.不只是Java的问题.
精确计算,要使用BigDecimal

精度丢失问题这里有详细论述
http://hxraid.iteye.com/blog/504293
0 请登录后投票
   发表时间:2010-12-26  
ouchxp 写道
额...我做对了....
不过啊 你的注释是错的..有误导之嫌哦~~~~~~~



呵呵,注释是说明这个函数原本希望实现的功能
0 请登录后投票
   发表时间:2010-12-26  
ouchxp 写道
贫僧不吃肉 写道

  2.00-1.10那个。。
  貌似是java对浮点数的表示的方面有问题。。

经典的精度丢失问题.不只是Java的问题.
精确计算,要使用BigDecimal

精度丢失问题这里有详细论述
http://hxraid.iteye.com/blog/504293



嗯,不错,学习了~~
0 请登录后投票
   发表时间:2010-12-26  
第一题貌似在java解惑里面看到过
0 请登录后投票
   发表时间:2010-12-26  
    public static boolean isOdd(int i){
    return (i & 1) == 1;
    } 
0 请登录后投票
   发表时间:2010-12-26  
自然数才有奇数与偶数的说法,而负数不是自然数。这个题目只能得出余数是0还是1,所以题目本身就有一点儿问题。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics