题解 | 牛牛学数列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-03 23:38
复旦大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务