我是靠谱客的博主 殷勤花生,最近开发中收集的这篇文章主要介绍蓝桥杯:标题: 排它平方数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目标题: 排它平方数
    小明正看着 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;
}

最后

以上就是殷勤花生为你收集整理的蓝桥杯:标题: 排它平方数的全部内容,希望文章能够帮你解决蓝桥杯:标题: 排它平方数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部