也是闲的

//蓝桥   排它平方数

题目标题: 排它平方数

    小明正看着 203879 这个数字发呆。

    原来,203879 * 203879 = 41566646641

    这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。

    具有这样特点的6位数还有一个,请你找出它!

    再归纳一下筛选要求:     1. 6位正整数     2. 每个数位上的数字不同     3. 其平方数的每个数位不含原数字的任何组成数位

答案是一个6位的正整数。

请通过浏览器提交答案。 注意:只提交另一6位数,题中已经给出的这个不要提交。 注意:不要书写其它的内容(比如:说明性的文字)。

 #include<iostream>
using namespace std;
#include<cstring>
int main()

{
    int a[10],j,k,l,flag;
    __int64 i,m;
    for(i=123456;i<=987654;i++)
    {
        j=i;
        l=0;
        flag=1;
        memset(a,0,sizeof(a));
        while(j) 

        {

            a[j%10]=1;
            //cout<<j%10<<' ';
            j/=10;

         } 

         //cout<<endl;
        //这一步其实就是保证输入的i的每一位都不同,不然下面的l会大于4

       for(k=0;k<=9;k++)
        {
            if(a[k]==0)
                l++;
        }
        if(l!=4)
            continue;

 m=i*i;
        //cout<<m<<endl;
        while(m)
        {
            if(a[m%10]==1)
            {
                flag=0;
                //cout<<m%10<<' ';
                break;
            }
            else
                m/=10;
        }
        if(flag&&i!=203879)
            cout<<i<<endl;
    }
    return 0;
}

 

posted on 2015-03-12 14:35  AC_WQYYY  阅读(119)  评论(0编辑  收藏  举报

导航