对于C ++来说,我是业余爱好者,但我已经收到了一项超出我所知的任务。
任务是输入数字n,m。程序必须将其作为一个区间,在该区间内检查是否有任何数字是具有相同指数的数字之和。
修改:(15年10月18日) 结果我没有正确地理解我的任务。这是:
"用户输入两个数字。程序将其作为检查所有数字的间隔。如果有一个间隔的数字,所有数字的SAME指数之和就是那个数字,那么程序会显示它。"
例如,我输入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;
}
}
}
}
任何帮助将不胜感激。
答案 0 :(得分:1)
任务是输入数字n,m。程序必须将其作为一个区间,在该区间内检查是否有任何数字是具有相同指数的数字之和。
假设范围是Boolean doagain = true;
// after Scanner in
while(doagain)
{
// your code
System.out.println("would you like to calculate again?(y/n)");
if ( in.next().toLowerCase().equals("n") ) doagain = false;
} // end while
// your code
,那么这是您的计划:
[n, m)
任何数字都可以看作具有相同指数的数字之和。例如:
return (n != m);
等等。即使对于负数也是如此。
因此,在任何非空范围内,至少存在1个这样的数字。
答案 1 :(得分:0)
&#34;我所知道的是如何让程序分别检查每个号码&#34; &#34;程序不得使用数组。&#34;
.OnKey
对不起,是Java no C ++
答案 2 :(得分:0)
很抱歉,我这么晚回答,我的问题很糟糕 - 英语不是我的母语。
但事实证明我没有正确理解我的任务。这是:
“用户输入两个数字。程序将其作为检查所有数字的时间间隔。如果有一个数字在间隔中,所有数字的SAME指数总和就是那个数字,那么程序会显示它。”
例如,我输入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;
}
}
}
}