概述
题目标题: 排它平方数
小明正看着 203879 这个数字发呆。
原来,203879 * 203879 = 41566646641
这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。
具有这样特点的6位数还有一个,请你找出它!
再归纳一下筛选要求:
1. 6位正整数
2. 每个数位上的数字不同
3. 其平方数的每个数位不含原数字的任何组成数位
答案是一个6位的正整数。
请通过浏览器提交答案。
注意:只提交另一6位数,题中已经给出的这个不要提交。
注意:不要书写其它的内容(比如:说明性的文字)。
#include<iostream>
using namespace std;
template <class T>
T create(T x,int arr[])
{
int i=0;
for(i=0;x;i++,x/=10)
arr[i]=x%10;
return i;
}
bool judge(int ai[],int leni)//To judge whether ai[] has repeat number inside.
{
int i,j;
for(i=0;i<leni-1;i++)
for(j=i+1;j<leni;j++)
if(ai[i]==ai[j])
return false;
return true;
}
bool judge(int ai[],int as[],int leni,int lens)//To juege whether ai[] has the same number in as[];
{
int j,k;
for(j=0;j<leni;j++)
for(k=0;k<lens;k++)
if(ai[j]==as[k])
return false;
return true;
}
int main()
{
__int64 i;
int ai[10]={0},as[20]={0},leni,lens;//as[] contains: i*i
; lens stand for : the length of i*i
for(i=102345;i<=987654;i++)
{
leni=create(i,ai);
if(!judge(ai,leni))
continue;
lens=create(i*i,as);
if(judge(ai,as,leni,lens))
cout<<i<<endl;
}
return 0;
}
最后
以上就是殷勤花生为你收集整理的蓝桥杯:标题: 排它平方数的全部内容,希望文章能够帮你解决蓝桥杯:标题: 排它平方数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复