C++循环结构设计——子序列的和

子序列的和(subsequence)

输入两个正整数n<m<10^6,输出1/n^2+1/(n+1)^2+……+1/m^2,保留5位小数。输入包含多组数据,结束标记为n=m=0.提示:本题有陷阱

样例输入:

2 4

65536 655360

0 0

样例输出:

Case 1: 0.42361

Case 2: 0.00001

#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
int n,m;
int kcase=1;
while(scanf(“%d %d”,&n,&m)!=EOF&&n&&m)
{
double sum=0;
for(int i=n;i<=m;i++)
{
sum=sum+1.0/i/i;
}
printf(“Case %d: %.5f\n”,kcase++,sum);
}
return 0;
}

陷阱在于,如果采用sum=sum+1.0/(i*i);的话,当i为655360的时候,i*i会发生溢出,所以为了避免这个问题的发生,我们采用进行两次连除的形式:sum=sum+1.0/i/i;
C++循环结构设计——子序列的和插图

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » C++循环结构设计——子序列的和

提供最优质的资源集合

立即查看 了解详情