我曾用bluej编写一个简单的程序,该程序计算并打印前10个正整数的倒数之和。我的代码是
public static void main (String[] args){
System.out.println(1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 +1/10); }
它输出数字1。有人可以解释一下原因,然后告诉我代码是什么吗? 我的老师说我不应该使用变量或其他任何东西。
答案 0 :(得分:0)
尝试1.0 / 1.0 + 1.0 / 2.0 +等。
原因是编译器将1/2解释为整数除以整数,这将返回整数(真值的下限)。 1.0 / 2.0被解释为一个float / float,它将返回一个float。
有关Google'C整数算术'的更多信息。