排他平方数(蓝桥)
来源:互联网 发布:intent传递大图片数据 编辑:程序博客网 时间:2024/05/22 06:20
题目描述
排它平方数
小明正看着 203879 这个数字发呆。
原来,203879 * 203879 = 41566646641
这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。
具有这样特点的6位数还有一个,请你找出它!
再归纳一下筛选要求:
1. 6位正整数
2. 每个数位上的数字不同
3. 其平方数的每个数位不含原数字的任何组成数位
答案是一个6位的正整数。
直接上代码,第一思路是用set
#include <iostream>#include <set>using namespace std;set<int> data;void pu(long long a){ while(a!=0) { data.insert(a%10); a=a/10; }}int main(){ int i,j,k,l,m,n; long long elem; int flag[11]; for(i=0;i<10;i++) flag[i]=0;//表示未使用 for(i=1;i<10;i++) { flag[i]=1; for(j=0;j<10;j++) { if(flag[j]==1) continue; flag[j]=1; for(k=0;k<10;k++) { if(flag[k]==1) continue; flag[k]=1; for(l=0;l<10;l++) { if(flag[l]==1) continue; flag[l]=1; for(m=0;m<10;m++) { if(flag[m]==1) continue; flag[m]=1; for(n=0;n<10;n++) { if(flag[n]==1) continue; data.clear(); elem=i*100000+j*10000+k*1000+l*100+m*10+n; elem=elem*elem; pu(elem); int size1=data.size(); data.insert(i); data.insert(j); data.insert(k); data.insert(l); data.insert(m); data.insert(n); int size2=data.size(); if(size1+6==size2) { cout<<"size1:"<<size1<<" size2:"<<size2<<endl; cout<<i<<j<<k<<l<<m<<n<<endl<<elem<<endl; } data.clear(); } flag[m]=0; } flag[l]=0; } flag[k]=0; } flag[j]=0; } flag[i]=0; } system("pause"); return 0;}
答案是 639172
0 0
- 排他平方数(蓝桥)
- 排他平方数
- 蓝桥杯-排他平方数
- 蓝桥杯 排他平方数
- 蓝桥杯-排他平方数
- 蓝桥 排它平方数
- 【第四届蓝桥杯预选赛】排他平方数
- 蓝桥 幸运数
- 蓝桥 回文数
- 蓝桥 数独
- 蓝桥 幸运数
- 蓝桥k好数
- 蓝桥 方格填数
- 蓝桥 方格填数
- 平方数
- 平方数
- 平方数
- 平方数
- PIXELFORMATDESCRIPTOR
- 漫谈-----抽象类与接口的应用(八)
- poj 3744 Scout YYF I(概率dp+矩阵快速幂)
- Centos 6.4 bridge模式 静态地址 上网
- 黑马程序员之Java--递归算法练习
- 排他平方数(蓝桥)
- 黑马程序员-java基础第3天-语句的基本介绍
- ios ---冒泡弹窗
- spring
- [Phonegap+Sencha Touch] 移动开发12 Sencha Touch打包发布网站的离线缓存版本
- stcuct和class的区别
- 女软件工程师的逆袭之路
- 新手一个--试求pi的值
- android百度地图---使用API定位不成功