1 条题解
-
0
C :
#include <stdio.h> int main() {int k,n=0; double Sn=0;//这道题的关键在于定义Sn为double,如果是float只过60%的数据 scanf("%d",&k); while(Sn<=k) {n++; Sn+=1.0/n;//注意分子或分母必须有小数点 } printf("%d",n); }
C++ :
#include<stdio.h> int main() { int n=1,k; double s=0.0; scanf("%d",&k); while(s<k) { s+=1/double(n); n++; } printf("%d\n",n-1); return 0; }
Pascal :
var k,n:longint;s:real; begin readln(k); while s<=k do begin inc(n); s:=s+1/n; end; writeln(n); end.
Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input=new Scanner (System.in); int k=input.nextInt(); double a=0; int i=0; while(a>=0){ a+=(double)1/(i+1); i++; if(a>k) { System.out.println(i); a=-1; } } } }
C# :
using System; namespace _20927 { class Class1 { static void Main() { int k = Convert.ToInt16(Console.ReadLine()); double n=2, sn=1; while (sn < k) { sn += 1 / n++; } if(sn!=k)n--; Console.WriteLine(n); Console.ReadLine(); } } }
- 1
信息
- ID
- 214
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者