藍橋杯 奇妙的數字

奇妙的數字

小明發現了一個奇妙的數字。它的平方和立方正好把0~9的10個數字每個用且只用了一次。
你能猜出這個數字是多少嗎?

請填寫該數字,不要填寫任何多餘的內容。

#include<stdio.h>
#include<stdlib.h>
int count(long num)//計算位數
{
	int a=0;
	while(num>0)
	{
		a++;
		num=num/10;
	}
	return a;
}
int fun(long num,long num1)//判斷是否從0-9全部用完。如果用完了 返回1,否則返回0。(num是平方,num1是立方)
{
	int b=0,c=0,d=0,e=0,numlen,num1len;
	//
	int a[]={0,1,2,3,4,5,6,7,8,9};
	if((count(num)+count(num1))!=10)return 0;//平方和立方的位數 是10位
	numlen=count(num);
	num1len=count(num1);
	//排除平方里面的數字(此處的count(num)要提出到循環外,每次循環都會變化)
	for(b=0;b<numlen;b++)
	{
		d=num%10;
		num=num/10;
		for(c=0;c<10;c++)
		{
			if(a[c]==d)
			{
				a[c]=-1;
			}
		}
	}
	//排除立方里面的數字
	for(b=0;b<num1len;b++)
	{
		d=num1%10;
		num1=num1/10;
		for(c=0;c<10;c++)
		{
			if(a[c]==d)
			{
				a[c]=-1;
			}
		}
	}
	//看有沒有排除完整
	for(e=0;e<10;e++)
	{
		if(a[e]!=-1)
		{
			return 0;
		}
	}
	return 1;
}
int main()
{
	long i,j,k;
	//printf("%d",count(21345678));
//	printf("%d",fun(12345678,90));
	for(i=0;i<9999;i++)
	{
		if(fun(i*i,i*i*i)==1)
		{
			printf("%d",i);
		}
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章