题解 | 牛牛学数列2
牛牛学数列2
https://www.nowcoder.com/practice/fc72951f52984f3abd286d82eeffacba
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int n = in.nextInt();
float sum = 0;
for(float i = 1; i <= n; i++){
sum = sum + (1 / i);
}
System.out.printf("%.9f",sum);
}
}
}
根据java除法操作规则,当有一个为float类型则进行浮点型除法,此时1/2.0f = 0.5,若都为int类型,则1/2 = 0 ,除后再进行int—>float类型转换仍旧为0.0000,所以在除法中应保证一个数为浮点型才能得到小数点后数字
for(int i = 1; i <= n; i++){
sum = sum + ((float)1.0000 / i);
}
或者
for(int i = 1; i <= n; i++){
sum = sum + (1 / (float)i);
}都可以
查看12道真题和解析