排它平方数|2013年蓝桥杯A组题解析第二题-fishers
排它平方数
小明正看着 203879 这个数字发呆。
原来,203879 * 203879 = 41566646641
这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。
具有这样特点的6位数还有一个,请你找出它!
再归纳一下筛选要求:
1. 6位正整数
2. 每个数位上的数字不同
3. 其平方数的每个数位不含原数字的任何组成数位
答案是一个6位的正整数。
请通过浏览器提交答案。
注意:只提交另一6位数,题中已经给出的这个不要提交。
注意:不要书写其它的内容(比如:说明性的文字)。
注意:要开long long,这里6位数*6位数也能爆。。
代码一:暴力枚举
#include <iostream>
#include <sstream>
using namespace std;
bool check(long long x, long long xx);
void i2s(long long, string &basic_string);
using namespace std;
int main(int argc, const char *argv[]) {
//枚举6个位置出现的数字
for (int i = 1; i < 10; ++i) {
for (int j = 0; j < 10; ++j) {
if (j != i)
for (int k = 0; k < 10; ++k) {
if (k != i && k != j)
for (int l = 0; l < 10; ++l) {
if (l != i && l != j && l != k)
for (int m = 0; m < 10; ++m) {
if (m != i && m != j && m != k && m != l)
for (int n = 0; n < 10; ++n) {
if (n != i && n != j && n != k && n != l && n != m) {
long long x = i * 100000 + j * 10000 + k * 1000 + l * 100 + m * 10 + n;
if (check(x, x * x)) {
cout << x << " " << x * x << endl;
}
}
}
}
}
}
}
}
return 0;
}
//检查是否满足条件
bool check(long long x, long long xx) {
string s_x, s_xx;
i2s(x, s_x);
i2s(xx, s_xx);
for (int i = 0; i < s_x.length(); ++i) {
if (s_xx.find(s_x[i]) != string::npos) {
return false;
}
}
return true;
}
//长整型long long转字符串
void i2s(long long x, string &basic_string) {
stringstream ss;
ss << x;
ss >> basic_string;
}
代码二:枚举+筛选
枚举100000 ~ 999999内的数,筛选满足条件的数。
筛选就是取每一位并作统计,满足题目中的要求
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
/*
6位数:dfs(x->6) 枚举6位数判断出现次数和
每位都不同
*/
bool vst[10];
//bool vsty[10];
bool canU(ll x){
for(int i=0;i<10;i++){
vst[i] = 0;
}
while(x){
vst[x%10] = 1;
x = x/10;
}
int cnt = 0;
for(int i=0;i<10;i++){
if(vst[i]) cnt++;
}
return cnt == 6;
}
bool canT(ll y){
while(y){
if(vst[y%10] == 1) return false;
y = y/10;
}
return true;
}
int main(){
for(ll i=100000;i<=999999;i++){
if(canU(i)){
ll y;
y = i * i;
if(canT(y)){
cout<<i<<endl;
cout<<" y = "<<y<<endl;
}
}
}
return 0;
}
//int * int 爆精度问题
//639172
代码三:dfs求全排列+筛选
排它平方数|2013年蓝桥杯A组题解析第二题-fishers的更多相关文章
- 连号区间数|2013年蓝桥杯B组题解析第十题-fishers
连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递 ...
- 第十届蓝桥杯JavaB组省赛真题
试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ...
- 黄金连分数|2013年蓝桥杯B组题解析第四题-fishers
黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜,它首次 ...
- 前缀判断|2013年蓝桥杯B组题解析第五题-fishers
前缀判断 如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL. 比如:"abcd1234" 就包含了 &quo ...
- 平方十位数——第八届蓝桥杯JavaB组(国赛)第一题
原创 标题:平方十位数 由0~9这10个数字不重复.不遗漏,可以组成很多10位数字.这其中也有很多恰好是平方数(是某个数的平方). 比如:1026753849,就是其中最小的一个平方数. 请你找出其中 ...
- 第八届蓝桥杯JavaB组省赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.购物单 题目描述 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推 ...
- 第九届蓝桥杯JavaA组省赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分数 题目描述 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项, 求这个和是多 ...
- 第十届蓝桥杯JavaC组省赛真题
试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ...
- 第四届蓝桥杯JavaC组省赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜年龄 题目描述 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学. 一 ...
随机推荐
- 关于plsqldev无法正常加载oracle instantclient中的oci.dll的其中一个原因
事情的经过是这样的: 1. 新安装了windows10 系统,装了plsqldev 和 oracle instantclient,以及 instantclient sqlplus. 2.设置好了ORA ...
- Unity shader学习之Alpha Blend
通过 ShaderLab 的 AlphaBlend 能够实现真正的半透明效果. 使用 AlphaBlend 时,需要关闭深度写入 ZWrite Off,但得非常小心物体的渲染顺序, RenderQue ...
- tcl脚本
tcl,全名tool command language,是一种通用的工具语言. 1)每个命令之间,通过换行符或者分号隔开: 2)tcl的每个命令包含一个或者多个单词,默认第一个单词表示命令,第二个单词 ...
- kali linux 基本命令(第一批)
pwd , rm ,locate ,cat ,head , clear ,ls ,cd ,mkdir ,touch ,ec ...
- 爬取笔下wenxue小说
import urllib.request from bs4 import BeautifulSoup import re def gethtml(url): page=urllib.request. ...
- c# 使用checked和unchecked
首先要知道int型在c#中是一个32位的数.由此可以知道int型的取值范围是(-2147483648~2147483647)当要使用int的最小值或者是最大值的时候,可以使用int.MinValue和 ...
- 区块链3.0 ada Cardano卡尔达诺如何获得一致好评?
区块链3.0 ada Cardano卡尔达诺如何获得一致好评? EOS 的直接竞争对手是以太坊.文章介绍的卡尔达诺(Cardano)的目标就更加远大了,他要同时锁定比特币和以太坊.但大家去网上搜索卡尔 ...
- eclipse 依赖别的 工程 断点进不去
maven Debug 发现进不了断点. 点击右键-->Properties-->Java Compiler-->Classfile Generation, 勾选上Add line ...
- bzoj3196 二逼平衡树
题目链接 平衡树系列最后一题 坑啊 10s时间限制跑了9764ms...还是要学一学bit套主席树啦... 经典的线段树套treap...至于第一发为什么要TLE(我不会告诉你treap插入的时候忘了 ...
- 细数那些不懂Spring底层原理带来的伤与痛
1. 什么是spring? Spring 是个Java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Jav ...