河南省蓝桥杯第六届省赛-3-奇妙的数字

题目描述:

小明发现了一个奇妙的数字。它的平方和立方正好把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

发布了23 篇原创文章 · 获赞 3 · 访问量 4037

猜你喜欢

转载自blog.csdn.net/weixin_43098069/article/details/105578564
今日推荐