【第四届蓝桥杯预选赛】排他平方数

2017-12-06 18:53:47来源:CSDN作者:Soul_97人点击

分享

1338: 【第四届蓝桥杯预选赛】排他平方数

描述

题目描述:

小明正看着 203879 这个数字发呆。 原来,203879 * 203879 = 41566646641这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有一个,请你找出它!

再归纳一下筛选要求:

1. 6位正整数

2. 每个数位上的数字不同

3. 其平方数的每个数位不含原数字的任何组成数位

输入:

输出:

输出这另一个数字

暴力枚举~~~~~~~~~
#include<bits/stdc++.h>using namespace std;typedef long long ll;int res;int n=0;int main(){	int v[10];	ll s=0;	for(int a=1;a<=9;a++)	for(int b=0;b<=9;b++)	for(int c=0;c<=9;c++)	for(int d=0;d<=9;d++)	for(int e=0;e<=9;e++)	for(int f=0;f<=9;f++)	{		n ++;		memset(v,0,sizeof(v));		if(a == b || a == c || a == d || a == e || a == f || b == c || b == d|| b == e || b == f		|| c == d || c == e|| c ==f ||d == e|| d == f || e == f)		continue;		ll num = a*100000 + b*10000 + c*1000 + d*100 + e*10 + f;		ll tmp = num*num;		while(tmp)		{			s = tmp % 10;			v[s] ++;			tmp /= 10;		}		if((v[a] == 0) && (v[b] == 0) &&(v[c] == 0) &&(v[d] == 0) &&(v[e] == 0) &&(v[f] == 0) && num != 203879 )		{			res = num;			cout<<res;			return 0;		}	}	return 0;} 


   

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台