首先,我想对不起,因为我上周提到了类似的问题。我没有正确地理解它,当我编辑那个主题时,似乎没有人看到它。但是我必须明天完成这个程序,因为这是一个家庭任务。
以下是C ++中的程序:
“用户输入两个数字。程序将其作为检查所有数字的时间间隔。如果有一个数字在间隔中,所有数字的SAME指数总和就是那个数字,那么程序会显示它。”
例如,我输入100和200.在此间隔中有153。
153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3(1 + 125 + 27)
节目节目153。
但不是28.因为28 = 2 ^ 1 + 2 ^ 3(2 + 8 = 10,而不是28)
等等。
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++) //checks the exponent
{
a = a * a;
b = b * b;
c = c * c;
d = d * d;
if (a + b + c + d == n)
{
cout << n << endl;
}
}
}
}
我定义了整数a,b,c,d,所以这段代码可以处理最多4位数的数字。 代码很简单,但我看不出问题。
任何帮助将不胜感激。
答案 0 :(得分:1)
你一直在这里a
:
a = a * a
所以你要用方形,第四种力量来检查......