纠结的点:多行输入
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n, m;
while (cin >> m >> n)
{
int count=0;
for (int num = m; num <= n; num++)
{
if ((pow((num / 100), 3) + pow((num / 10)%10, 3) + pow(num %10, 3) == num)&&(count==0))
{
cout << num;
count++;
}
else if ((pow((num / 100), 3) + pow((num / 10) % 10, 3) + pow(num % 10, 3) == num) && (count != 0))
{
cout << " "<< num;
count++;
}
}
if (count == 0)
{
cout << "no";
}
cout << endl;
}
return 0;
}
优化后:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n, m;
while (cin >> m >> n)
{
int count=0;
for (int num = m; num <= n; num++)
{
int sum = pow((num / 100), 3) + pow((num / 10) % 10, 3) + pow(num % 10, 3);
if (sum == num)
{
if (count == 0)
{
cout << num;
count++;
}
else
{
cout << " " << num;
count++;
}
}
}
if (count == 0)
{
cout << "no";
}
cout << endl;
}
return 0;
}
另:为什么代码有system("pause") 就不算正确答案