代碼
import java.util.Scanner;public class Main {public static void main(String args[]){Scanner sc = new Scanner(System.in);int k = sc.nextInt();int n = 0;double Sn = 0;while(Sn<=k){n++;Sn = Sn + 1.0/n;}System.out.println(n);}
}
這樣寫while循環體這需要每次加上1/n最后一項就行了,不會超時。
再康康我第一次寫的:
import java.util.Scanner;public class luogu1035 {public static void main(String args[]){Scanner sc = new Scanner(System.in);int k = sc.nextInt();int n = 1;while(Sum(n)<=k){n++;}System.out.println(n);}public static double Sum(int n){double sum = 0.0;int i = 1;for (i = 1;i<=n;i++){sum = sum + 1.0/i;}return sum;}
}
直接超時。
我腦袋被門踢了,編寫Sum()求和。