c语言怎么实现分数与分数相加
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
本帖最后由 风过无痕1989 于 2021-1-17 12:23 编辑
1835421 项之和大于等于15.0
#include<stdio.h>
int main()
{
int i;
double sum = 0;
for (i = 1;i < 10000000;i++)
{
sum += 1.0 / i;
if (sum >= 15.0)
{
break;
}
}
printf("%d\n", i);
} 本帖最后由 烂泥化刚 于 2021-1-17 12:54 编辑
#include <stdio.h>
int main()
{
double sum = 0;
int i = 1;
for(; sum < 15.0; i++)
{
sum += 1.0 / i;
}
return i;
} 1835422 烂泥化刚 发表于 2021-1-17 12:54
1835422
你再算算,1835422,它的值等于 15.000001 风过无痕1989 发表于 2021-1-17 14:42
你再算算,1835422,它的值等于 15.000001
我懂了,
我的for语句在最后又将i自增了一次对吧 烂泥化刚 发表于 2021-1-17 17:01
我懂了,
我的for语句在最后又将i自增了一次对吧
是的,虽然最后自增那一次,已经不再累加了,但自增加的 i 却实实在在地加 1了。我的做法是先设置一个很大的次数,达到条件后,就直接中断循环,所以,i 就反映了实际运算次数 风过无痕1989 发表于 2021-1-17 19:52
是的,虽然最后自增那一次,已经不再累加了,但自增加的 i 却实实在在地加 1了。我的做法是先设置一个很 ...
多谢大佬传授的经验
页:
[1]