首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

突破取值范围,该如何解决

2012-03-18 
突破取值范围{int n,b,ss0cinnwhile(n){bn%10nn/10ss+b}coutssendl}这个程序是求所

突破取值范围
{int n,b,s;
  s=0;
  cin>>n;  
while(n)
{b=n%10;
n=n/10;
s=s+b;
}
cout<<"s="<<s<<endl;

}
这个程序是求所输入的数的各位数字之和,然定义数据类型为整数后,对所输入的数字的范围有了限制!如何突破这个限制呢???望指教。

[解决办法]
将int 改为long int
[解决办法]
{ int i=1, sum=0,n,t;
cin>>n;

while(n>10) 
{
t=n%10;
sum=sum+t;
n=(n-t)/10 ;//取完个位将个位数丢去,然后再除以10那么原来的十位变成个位

}
sum=sum+n;//在最后要加上最高位
cout<<sum;
}
楼主给分吧,穷死我了
[解决办法]
如果使用64位整数__int64还不够的话就只能用字符串来做转换了
[解决办法]
int64或者字符串

热点排行