请大侠解答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个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用 的基数