对于 C++,我是一个业余爱好者,但我已经收到了一项超出我知识范围的任务。
任务是输入数字 n,m。程序必须将其视为一个区间,在区间中检查是否存在相同指数的数字之和。
编辑:(15.10.18)事实证明我没有正确理解我的任务。这里是:
“用户输入两个数字,程序将其作为检查所有数字的区间。如果区间内有一个数字的所有数字的相同指数之和是该数字,则程序显示它。”
例如,我输入 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;
}
}
}
}
任何帮助将不胜感激。
任务是输入数字 n,m。程序必须将其视为一个区间,在区间中检查是否存在相同指数的数字之和。
假设范围给出为[n, m)
,那么这是你的程序:
return (n != m);
任何数字都可以看作具有相同指数的数字之和。例如:
0 = 0 ^ 3 + 0 ^ 3 + 0 ^ 3
1 = 1 ^ 3 + 0 ^ 3
2 = 1 ^ 3 + 1 ^ 3
3 = 1 ^ 3 + 1 ^ 3 + 1 ^ 3
等等。即使对于负数也是如此。
所以在任何非空范围内至少存在 1 个这样的数字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)