调和级数

白墨锦 2018-11-15 12:06:25

1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。

它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。

但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0

那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?

请填写这个整数。

注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。


代码如下:

#include <iostream>
using namespace std;

int main()
{
double sum=0;
int n=1;
while(sum<15)
{
sum=sum+1.0/n;//注意这里的1.0
n++;
}
cout<<n<<endl;
cout<<"fuck";
return 0;
}

#include <stdio.h>

const int MAXN = 1e7;

int main(int argc, const char * argv[])
{
double sum = 0;
int i = 1;
for (; i < MAXN; i++)
{
sum = sum + 1.0 / i;
if (sum >= 15.0)
{
printf("%d\n", i);
break;
}
}

return 0;
}

JAVA代码
public static void main(String[] args) {

double i = 0.0;
double sum = 0.0;
while (sum<15) {
i += 1.0;
double x = 1/i;
sum += x;
}

System.out.println(i);

}
...全文
705 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
白墨锦 2018-11-25
  • 打赏
  • 举报
回复
这是c和Java。当初一起写的,所以就一起放出来了。
白墨锦 2018-11-25
  • 打赏
  • 举报
回复
enmm其实就是一道题,然后我给代码直接放出来了。
636f6c696e 2018-11-15
  • 打赏
  • 举报
回复
问题是什么?不同语言计算结果不一样?那可能是精度的关系
英雄@末路 2018-11-15
  • 打赏
  • 举报
回复
展示下c++, c, java的实现差别?
自信男孩 2018-11-15
  • 打赏
  • 举报
回复
楼主的问题是什么?
AlbertS 2018-11-15
  • 打赏
  • 举报
回复
有什么问题吗?结果呢?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧