胡漠杨 @ 2020-03-14 21:06:04
#include<stdio.h>
float sum(float (1/n));
int main()
{
int n,k;
scanf ("%d",&k);
for (n=1;;n++)
{
if (k<sum(1/n))
{
break;
}
printf ("%d",n);
}
return 0;
}
float sum(float (1/n))
{
int n;
if (n==1)
{
return 1;
}
else
{
return sum(1/(n-1))+(1/n);
}
}
by Marser @ 2020-03-14 21:11:29
@return20071007 看到的神仙人太多了,让您见笑了
by UnyieldingTrilobite @ 2020-03-14 21:12:22
@Marser
这个真的可以运行,窝博客里好像第一篇有这个题解
by shao_qian @ 2020-03-14 21:12:34
试着学一下while?
by UnyieldingTrilobite @ 2020-03-14 21:12:36
不算推销博客罢
by 胡漠杨 @ 2020-03-14 21:15:19
#include<stdio.h>
double sum(double n);
int main()
{
int n,k;
scanf ("%d",&k);
for (n=1;;n++)
{
if (k<sum(1/n))
{
break;
}
printf ("%d",n);
}
return 0;
}
double sum(double n)
{
if (n==1)
{
return 1;
}
else
{
return sum(n-1)+(n);
}
}
by UnyieldingTrilobite @ 2020-03-14 21:15:48
有问题的
by Marser @ 2020-03-14 21:18:13
#include<stdio.h>
double sum(int n)
{
if (n==1)
{
return 1;
}
else
{
return sum(n-1)+(1.0/(double)n);
}
}
int main()
{
int n,k;
scanf ("%d",&k);
for (n=1;;n++)
{
if (k<sum(n))
{
break;
}
}
printf ("%d",n);
return 0;
}
by 胡漠杨 @ 2020-03-14 21:22:27
@Marser 请问 return sum(n-1)+(1.0/(double)n) 中, "(double)n" 是什么意思?
by Marser @ 2020-03-14 21:26:03
@胡漠杨 把int
类型的n
强制转换为double
by 胡漠杨 @ 2020-03-14 21:33:17
@Marser 好的好的,非常感谢,初学C语言,还有很多不懂,麻烦您了。