蓝桥杯 题目标题: 排它平方数 最新真题

题目标题: 排它平方数

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

原来,203879 * 203879 = 41566646641

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

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

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

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

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

#include <iostream>
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    int number = 123456;//最小的数字
    int maxNumber = 987654;//最大的数字
    int a1,a2,a3,a4,a5,a6;
    int b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12;
    int result;
    int num;
    int k1,k2;
    for(int i = number; i <= maxNumber; i++){
        a1 = i/100000;
        a2 = (i-a1*100000)/10000;
        a3 = (i-a1*100000-a2*10000)/1000;
        a4 = (i-a1*100000-a2*10000-a3*1000)/100;
        a5 = (i-a1*100000-a2*10000-a3*1000-a4*100)/10;
        a6 = i-a1*100000-a2*10000-a3*1000-a4*100-a5*10;
        if(a1 != a2 && a1!=a3 && a1!=a4 && a1!=a5 && a1!=a6 && a2!=a3 && a2!=a4 && a2!=a5 && a2!=a6 && a3!=a4 && a3!=a5 && a3!=a6 && a4!=a5 && a4!=a6 && a5!=a6){
            num = a6 * a6;
            k1 = num % 10;
            k2 = num / 10;
            if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                num = a5 *a6 + a6 * a5 + k2;
                k1 = num % 10;
                k2 = num / 10;
                if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                    num = a4 * a6 + a5 * a5 + a6 * a4 + k2;
                    k1 = num % 10;
                    k2 = num / 10;
                    if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                        num = a3 * a6 + a4 * a5 + a5 * a4 + a6 * a3 + k2;
                        k1 = num % 10;
                        k2 = num / 10;
                        if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                            num  = a2 * a6 + a3 * a5 + a4 * a4 + a5 * a3 + a6 * a2 + k2;
                            k1 = num % 10;
                            k2 = num / 10;
                            if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                                num = a1 * a6 + a2 * a5 + a3 * a4 + a4 * a3 + a5 * a2 + a6 * a1 + k2;
                                k1 = num % 10;
                                k2 = num / 10;
                                if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                                    num = a1 * a5 + a2 * a4 + a3 * a3 + a2 * a4 + a1 * a5 + k2; 
                                    k1 = num % 10;
                                    k2 = num / 10;
                                    if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                                        num = a1 * a4 + a2 * a3 + a3 * a2 + a4 * a1 + k2;
                                        k1 = num % 10;
                                        k2 = num / 10;
                                        if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                                            num = a1 * a3 + a2 * a2 + a3 * a1 + k2;
                                            k1 = num % 10;
                                            k2 = num / 10;
                                            if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                                                num = a1 * a2 + a2 * a1 + k2;
                                                k1 = num % 10;
                                                k2 = num / 10;
                                                if(k1!= a1 && k1!=a2 && k1!=a3 && k1!=a4 && k1!=a5 && k1!=a6 ){
                                                    num = a1 * a1 + k2;
                                                    k1 = num % 10;
                                                    k2 = num / 10;
                                                    if(k2!= a1 && k2!=a2 && k2!=a3 && k2!=a4 && k2!=a5 && k2!=a6 ){
                                                        cout<<i<<endl;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值