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

请大侠解答C++基础有关问题

2012-04-16 
请大侠解答C++基础问题我想做一个多位数(超过15位的)水仙花数判定的小程序,思路是:如数字为30位,将它分成

请大侠解答C++基础问题
我想做一个多位数(超过15位的)水仙花数判定的小程序,思路是:如数字为30位,将它分成两个15位,分别计算,然后再判断。核心代码如下:
  double num,n,t1,t2,num1,num2,sum1,sum2;
string s,s1,s2;
cin>>s;
n=s.length(); //计算出数字的位数
s1=s.substr(0,15);
s2=s.substr(15,n); //将多位数拆成15位以
  //问题1:怎样将s1,s2转化为double型的num1,num2,并进行以下的计算,我用字符串转化函数没弄出来?
while(num1!=0)
{
t1=num1%10; //求余
sum1+=pow(t,n); //平方和
num1/=10; //取整
}
  while(num2=0)

{
t2=num2%10;  
sum2+=pow(t,n);  
num2/=10;  
}

if(s==sum1+sum2) cout<<s<<"是水仙花数!\n"; //问题2:if的判断条件表达式两边数据类型又不同,怎样解决?
else cout<<num1<<"不是水仙花数!\n"; //判断是否为水仙花数
return 0;



求解决方法与代码??

[解决办法]
这个一般都是整数,可以考虑atoi
[解决办法]
stod
[解决办法]
用itoa函数吧,itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用 的基数

热点排行