level 1
洳淉眼涙吥记得
楼主
小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
你能猜出这个数字是多少吗?
以下是我编的程序
#include <iostream>
using namespace std;
int main()
{
int num, i, p1, p2;
int a[10], b[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (num = 32; num <= 99; num++)
{
p1 = num*num;
p2 = num*num*num;
a[0] = p1 % 10;
a[1] = p1 / 10 % 10;
a[2] = p1 / 100 % 10;
a[3] = p1 / 1000 % 10;
a[4] = p2 % 10;
a[5] = p2 / 10 % 10;
a[6] = p2 / 100 % 10;
a[7] = p2 / 1000 % 10;
a[8] = p2 / 10000 % 10;
a[9] = p2 / 100000 % 10;
for (i = 1; i <= 9; i++)
{
b[a[i]]++;
}
if (b[0] == 1 && b[1] == 1 && b[2] == 1 && b[3] == 1 && b[4] == 1 && b[5] == 1
&& b[6] == 1 && b[7] == 1 && b[8] == 1 && b[9] == 1)
break;
}
cout << num;
return 0;
}
已经笨笨地硬算。。。
但运行结果 果断就是100
丧病。。。
请教大神。。。 错在哪
另:判断数组a[10]中各个数互不相等该怎么做。 已知所有元素都是0~9之间的数字
2015年04月21日 15点04分
1
你能猜出这个数字是多少吗?
以下是我编的程序
#include <iostream>
using namespace std;
int main()
{
int num, i, p1, p2;
int a[10], b[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (num = 32; num <= 99; num++)
{
p1 = num*num;
p2 = num*num*num;
a[0] = p1 % 10;
a[1] = p1 / 10 % 10;
a[2] = p1 / 100 % 10;
a[3] = p1 / 1000 % 10;
a[4] = p2 % 10;
a[5] = p2 / 10 % 10;
a[6] = p2 / 100 % 10;
a[7] = p2 / 1000 % 10;
a[8] = p2 / 10000 % 10;
a[9] = p2 / 100000 % 10;
for (i = 1; i <= 9; i++)
{
b[a[i]]++;
}
if (b[0] == 1 && b[1] == 1 && b[2] == 1 && b[3] == 1 && b[4] == 1 && b[5] == 1
&& b[6] == 1 && b[7] == 1 && b[8] == 1 && b[9] == 1)
break;
}
cout << num;
return 0;
}
已经笨笨地硬算。。。
但运行结果 果断就是100
请教大神。。。 错在哪
另:判断数组a[10]中各个数互不相等该怎么做。 已知所有元素都是0~9之间的数字