题意很简单,输入一个数, 算出1/2 + 1/3 + 1/4 + … + 1/(n + 1)大于这个数时的最小n。
Java实现代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); float f = in.nextFloat(); int i = 0; while(f!=0.00){ if(getLen(i)<f&&getLen(i+1)>f){ System.out.println((i+1)+" card(s)"); i = 0; f = in.nextFloat(); }else{ i++; } } } private static float getLen(int n){ float res = 0.00f; for(int i = 1; i <= n; i++){ res += 1.0/(i+1); } return res; } } |
除非注明,饮水思源博客文章均为原创,转载请以链接形式标明本文地址