题目描述:
小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
你能猜出这个数字是多少吗?
请填写该数字,不要填写任何多余的内容。
解答:
这题其实也不难,大概猜测该数字在10000以内,for循环,从1开始逐个判断是否满足条件即可
代码如下:
#include<iostream>
using namespace std;
int a[10]={0,0,0,0,0,0,0,0,0,0};
int dealwithpfandlf(int pf,int lf);
int main()
{
for(int i=1;i<=10000;i++)
{
for(int j=0;j<10;j++)
a[j]=0;
int pf=i*i;//pf为平方
int lf=i*i*i;//lf为立方
if(dealwithpfandlf(pf,lf))
{
cout<<i<<endl;
return 0;
}
}
return 0;
}
int dealwithpfandlf(int pf,int lf)
{
while(pf!=0)//把平方的每一个数字记录到数组里
{
int temp=pf%10;
a[temp]=1;
pf=pf/10;
}
while(lf!=0)//把立方的每一个数字记录到数组里
{
int temp=lf%10;
a[temp]=1;
lf=lf/10;
}
for(int i=0;i<10;i++)//检查数组,要是有一个数字没有用到 ,就说明不满足要求
if(a[i]==0)
return 0;
return 1;//所有数字都用到了,满足要求
}
答案:69