1002-Armstrong数
问题总结:
1.希望接下来使用先声明后定义的形式写函数
2.C++的string很方便,通过+=即可以完成字符串的拼接
3.字符串和数字相互转换的自写函数
string num2str(int i)
{
stringstream ss;
ss << i;
return ss.str();
}
int str2num(string s)
{
int num;
stringstream ss(s);
ss >> num;
return num;
}
#include<iostream>
#include<sstream>
#include<string>
using namespace std;
string num2str(int i);
int str2num(string s);
int main()
{
int a = 1, b = 0, c = 0;
int id[10];
string A, B, C;
int w;
int i = 1;
//cout << A << B << C;
for(a = 1; a <= 9; a++)
for(b = 0; b <= 9; b++)
for(c = 0; c <= 9; c++)
{
A = num2str(a);
B = num2str(b);
C = num2str(c);
int sum = a * a * a + b * b * b + c * c * c;
string res;
res += A;
res += B;
res += C;
int numres;
numres = str2num(res);
if(sum == numres)
{
//cout << id << ":" << sum << endl;
id[i] = sum;
i++;
}
}
while((cin >> w) && w != 0)
{
if(w > i -1)
cout << "0" << endl;
else
cout << id[w] <<endl;
}
//cout << res;
return 0;
}
string num2str(int i)
{
stringstream ss;
ss << i;
return ss.str();
}
int str2num(string s)
{
int num;
stringstream ss(s);
ss >> num;
return num;
}