我在C++方面是个业余爱好者,但我已经接到了一项超出我的知识范围的任务。
任务是输入数字n和m。程序必须将其作为区间,检查其中是否有任何一个数字是具有相同指数的数字之和。
编辑:(18.10.15) 结果发现我没有正确理解我的任务。下面是任务:
“用户输入两个数字。程序将它们作为区间,在其中检查所有数字。如果在区间中存在一个数字,其所有位数的相同指数之和等于该数字,则程序显示该数字。”
例如,我输入100和200。在这个区间中有153。 153 = 1^3 + 5^3 + 3^3 (1+125+27) 程序显示153。
cin >> n;
cin >> m;
for (int i=n; i<=m; i++)
{
for (int k=n; k<=i; k++)
{
a = n % 10; //for example, I enter 153, then a=3
f = n /= 10; //f=15
b = f % 10; //b=5
f = f /= 10; //f=1
c = f % 10; //c=1
f = f /= 10;
d = f % 10;
for (int j=1; j<=5; j++)
{
a = a * a;
b = b * b;
c = c * c;
d = d * d;
if (a + b + c + d == n)
{
cout << n << endl;
}
}
}
}
非常感谢您的帮助。
pow
函数以计算指数值。 - Thomas Matthews