打印

数据溢出问题

[复制链接]
1451|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无冕之王|  楼主 | 2013-5-24 22:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定义函数g(n)为n最大的奇数因子。 求f(n)=g(1)+g(2)+g(3)+…+g(n)
输入的n最大为100000000,我的程序运行到100000就溢出了,不知怎们改,请大神赐教,help me!
#include <stdio.h>
void main()
{
int i,j,n,k=0;
double sum=0.0;
while(scanf("%d",&n)!=EOF)
{
while(n!=1)
{
if(n%2!=0)
{
i = n/2+1;
(double)sum += i*i;
n=(n-1)/2;
}
if(n%2==0)
{
i=n/2;
(double)sum+=i*i;
n=(n+1)/2;
}
}
printf("%.0f",sum+1);
printf("\n");
}
}

相关帖子

沙发
baidudz| | 2013-5-24 22:12 | 只看该作者
各种数据类型总有溢出的时候.
如果不是正常的表示溢出, 那么你可以自己设置一个条件断点, 看原因.

使用特权

评论回复
板凳
火箭球迷| | 2013-5-24 22:24 | 只看该作者
sum += (double)i*i;//写成这样成不??

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:喜欢远行

160

主题

3331

帖子

0

粉丝