排它平方数

  1. 小明正看着 203879 这个数字发呆。
  2. 原来,203879 * 203879 = 41566646641
  3. 这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。
  4. 具有这样特点的6位数还有一个,请你找出它!
  5. 再归纳一下筛选要求:
  6. 1. 6位正整数
  7. 2. 每个数位上的数字不同
  8. 3. 其平方数的每个数位不含原数字的任何组成数位

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

请通过浏览器提交答案。

注意:只提交另一6位数,题中已经给出的这个不要提交。

注意:不要书写其它的内容(比如:说明性的文字)。

注意:要开long long,这里6位数*6位数也能爆。。

代码一:暴力枚举


  1. #include <iostream>
  2. #include <sstream>
  3. using namespace std;
  4. bool check(long long x, long long xx);
  5. void i2s(long long, string &basic_string);
  6. using namespace std;
  7. int main(int argc, const char *argv[]) {
  8. //枚举6个位置出现的数字
  9. for (int i = 1; i < 10; ++i) {
  10. for (int j = 0; j < 10; ++j) {
  11. if (j != i)
  12. for (int k = 0; k < 10; ++k) {
  13. if (k != i && k != j)
  14. for (int l = 0; l < 10; ++l) {
  15. if (l != i && l != j && l != k)
  16. for (int m = 0; m < 10; ++m) {
  17. if (m != i && m != j && m != k && m != l)
  18. for (int n = 0; n < 10; ++n) {
  19. if (n != i && n != j && n != k && n != l && n != m) {
  20. long long x = i * 100000 + j * 10000 + k * 1000 + l * 100 + m * 10 + n;
  21. if (check(x, x * x)) {
  22. cout << x << " " << x * x << endl;
  23. }
  24. }
  25. }
  26. }
  27. }
  28. }
  29. }
  30. }
  31. return 0;
  32. }
  33. //检查是否满足条件
  34. bool check(long long x, long long xx) {
  35. string s_x, s_xx;
  36. i2s(x, s_x);
  37. i2s(xx, s_xx);
  38. for (int i = 0; i < s_x.length(); ++i) {
  39. if (s_xx.find(s_x[i]) != string::npos) {
  40. return false;
  41. }
  42. }
  43. return true;
  44. }
  45. //长整型long long转字符串
  46. void i2s(long long x, string &basic_string) {
  47. stringstream ss;
  48. ss << x;
  49. ss >> basic_string;
  50. }

代码二:枚举+筛选

枚举100000 ~ 999999内的数,筛选满足条件的数。

筛选就是取每一位并作统计,满足题目中的要求

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. /*
  5. 6位数:dfs(x->6) 枚举6位数判断出现次数和
  6. 每位都不同
  7. */
  8. bool vst[10];
  9. //bool vsty[10];
  10. bool canU(ll x){
  11. for(int i=0;i<10;i++){
  12. vst[i] = 0;
  13. }
  14. while(x){
  15. vst[x%10] = 1;
  16. x = x/10;
  17. }
  18. int cnt = 0;
  19. for(int i=0;i<10;i++){
  20. if(vst[i]) cnt++;
  21. }
  22. return cnt == 6;
  23. }
  24. bool canT(ll y){
  25. while(y){
  26. if(vst[y%10] == 1) return false;
  27. y = y/10;
  28. }
  29. return true;
  30. }
  31. int main(){
  32. for(ll i=100000;i<=999999;i++){
  33. if(canU(i)){
  34. ll y;
  35. y = i * i;
  36. if(canT(y)){
  37. cout<<i<<endl;
  38. cout<<" y = "<<y<<endl;
  39. }
  40. }
  41. }
  42. return 0;
  43. }
  44. //int * int 爆精度问题
  45. //639172

代码三:dfs求全排列+筛选

排它平方数|2013年蓝桥杯A组题解析第二题-fishers的更多相关文章

  1. 连号区间数|2013年蓝桥杯B组题解析第十题-fishers

    连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递 ...

  2. 第十届蓝桥杯JavaB组省赛真题

    试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ...

  3. 黄金连分数|2013年蓝桥杯B组题解析第四题-fishers

    黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜,它首次 ...

  4. 前缀判断|2013年蓝桥杯B组题解析第五题-fishers

    前缀判断 如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL. 比如:"abcd1234" 就包含了 &quo ...

  5. 平方十位数——第八届蓝桥杯JavaB组(国赛)第一题

    原创 标题:平方十位数 由0~9这10个数字不重复.不遗漏,可以组成很多10位数字.这其中也有很多恰好是平方数(是某个数的平方). 比如:1026753849,就是其中最小的一个平方数. 请你找出其中 ...

  6. 第八届蓝桥杯JavaB组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.购物单 题目描述 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推 ...

  7. 第九届蓝桥杯JavaA组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分数 题目描述 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项, 求这个和是多 ...

  8. 第十届蓝桥杯JavaC组省赛真题

    试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ...

  9. 第四届蓝桥杯JavaC组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜年龄 题目描述 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学. 一 ...

随机推荐

  1. JS实例4

    根据当前年的前五年后五年的年月日 <select id="nian" onclick="Bian()"></select>年 <s ...

  2. UML之组件图

    基本概念:组件图即是用来描述组件与组件之间关系的一种UML图.组件图在宏观层面上显示了构成系统某一个特定方面的实现结构. 组件图中主要包含三种元素,即组件.接口和关系. 组件图通过这些元素描述了系统的 ...

  3. RAMPS1.4 3D打印控制板:软件下载\连接\安装\测试

    RAMPS1.4 3D打印控制板:软件下载\连接\安装\测试 特别说明: 电源接反,电机驱动板接反将有可能烧毁芯片和电路,请再三确认后再进行通电. 如何使用: 1.需要用到的模块或器件: Arduin ...

  4. html5-select和datalist元素

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  5. scu 4439 Vertex Cover

    题意: 给出n个点,m条边,将若干个点染色,使得每个边至少有一点染色,问至少染多少个点. 思路: 如果是二分图,那就是最小点覆盖,但是这是一般图. 一般图的最小覆盖是npc问题,但是这题有一个条件比较 ...

  6. flask设置cookie,设置session,模拟用户认证、模拟管理后台admin、模拟用户logout

    设置cookie HTTP协议是无状态的,在一次请求响应结束后,服务器不会留下关于客户端状态的信息.但是对于某些web程序来说,客户端的信息有必要被记住,比如用户的登录状态,这样就可以根据用户的状态来 ...

  7. js如何获取服务器端时间?

    用js做时间校正,获取本机时间,是存在bug的. 使用js也可获取到服务器时间,原理是使用 ajax请求,返回的头部信息就含有服务器端的时间信息,获取到就可以了.以下: 1.依赖jQuery 代码: ...

  8. js关于移入移出延迟提示框效果处理

    html部分 <div id="div1">我是导航君</div> <div id="div2" style="disp ...

  9. Deeplearning 两层cnn卷积网络详解

    https://blog.csdn.net/u013203733/article/details/79074452 转载地址: https://www.cnblogs.com/sunshineatno ...

  10. nginx 启动 + uwsgi + django

    https://www.cnblogs.com/chenice/p/6921727.html https://blog.csdn.net/Aaroun/article/details/78218131