排它平方数|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年应邀来中国清华大学讲学. 一 ...
随机推荐
- 《大话设计模式》c++实现 状态模式
状态模式包含如下角色: Context: 环境类 State: 抽象状态类 ConcreteState: 具体状态类 2)适用场景: a)状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂 ...
- while练习题
# 1. 使用while循环输出1 2 3 4 5 6 8 9 10count = 1while count <= 10: if count == 7: count += 1 continue ...
- c扩展开发
为什么要用C扩展 C是静态编译的,执行效率比PHP代码高很多.同样的运算代码,使用C来开发,性能会比PHP要提升数百倍.IO操作如CURL,因为耗时主要在IOWait上,C扩展没有明显优势. 另外C扩 ...
- KL距离,Kullback-Leibler Divergence
http://www.cnblogs.com/ywl925/p/3554502.html http://www.cnblogs.com/hxsyl/p/4910218.html http://blog ...
- 转自大神的KM想法
我第一次理解KM算法看到大神的讲解不胜感激这km挺神奇的接下来就见识一下这个大牛的吧 转自 http://blog.csdn.net/wuxinxiaohuangdou/article/details ...
- Properties (25)
1.Properties 没有泛型.也是哈希表集合,无序集合.{a=1,b=2,c=3} 2. 读取文件中的数据,并保存到集合 (Properties方法:stringPropertyName ...
- (Review cs231n) Gradient Calculation and Backward
---恢复内容开始--- 昨日之补充web. 求解下图的梯度的流动,反向更新参数的过程,表示为 输入与损失梯度的关系,借助链式法则,当前输入与损失之间的梯度关系为局部梯度乘以后一层的梯度. ---恢复 ...
- mac电脑使用,开发环境配置指南
mac电脑使用,开发环境配置指南 前端工具链,mac下都很好用 用brew来装软件 用brew cask来装应用 Introduction · macOS Setup Guidehttp://sour ...
- 图像处理基础---RGB图 灰度图 索引图 调色板
(1)二进制图 在二进制图中,像素的取值为两个离散数值0或1中的一个,0代表黑色,1代表白色 例 A=[0 0 1;1 1 0; 0 0 1];>> imshow(A,'InitialMa ...
- What’s WOYO PDR-007 Paintless Dent Repair Heat Induction?
when you car body with dent, which tools can fixing this problem? is there a device which with the c ...