2912:三个完全平方数
总时间限制: 1000ms 内存限制: 65536kB
描述
将1,2,…,9分成3组,每组3个数,组内数字不重复,组间的数字也不重复。
组内的3个数字可任意排列,组成一个三位数。
已知这3个数都是完全平方数,求这3个数。
输入
输入一个MAX
输出
如果求出的三个数a,b,c均小于MAX,则输出:
a b c
否则输出小于MAX的数:
a b
或者
a

注意:
1,a,b与b,c之间各有空格一个。最后一个数之后没有空格。
2,应该满足a小于b小于c。
样例输入

样例输出

问题链接:Bailian2912 三个完全平方数
问题简述:(略)
问题分析
    先枚举所有的平方数,这些平方数只能是13-31之间的平方数。然后再枚举三个平方数。
    本题用枚举法实现,需要用到进制原理。求出的3个是361,529和784。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C语言程序如下:

/* Bailian2912 三个完全平方数 */#include <stdio.h>
#include <string.h>#define START 13
#define END 31
int num[END + 1];void init()
{int i;memset(num, 0, sizeof(num));for(i = START; i <= END; i++) {num[i] = i * i;int d1 = num[i] / 100, d2 = num[i] / 10 % 10, d3 = num[i] % 10;if(d1 == d2 || d2 == d3 || d3 == d1) num[i] = 0;}
}int judge(int a, int b)
{char t1[4], t2[4];sprintf(t1, "%d", a);sprintf(t2, "%d", b);int i, j;for(i =0; i < 3; i++)for(j = 0; j < 3; j++)if(t1[i] == t2[j]) return 0;return 1;
}int main(void)
{init();int max;scanf("%d", &max);int i, j, k, flag = 1;for(i = START; i <= END && flag; i++)if(num[i]) {for(j = i + 1; j <= END && flag; j ++)if(num[j] && judge(num[i], num[j])) {for(k = j + 1; k <= END && flag; k++)if(num[k] && judge(num[i], num[k]) && judge(num[j], num[k])) {if(num[k] < max) {printf("%d %d %d", num[i], num[j], num[k]);} else if(num[j] < max) {printf("%d %d", num[i], num[j]);} else if(num[i] < max) {printf("%d", num[i]);}flag = 0;}}}return 0;
}

Bailian2912 三个完全平方数【进制+枚举】相关推荐

  1. 《网络安全工程师笔记》 第三章:进制转换

    注:本笔记来自温晓飞老师的网络安全课程 第三章:进制转换 第一章:虚拟化架构与系统部署 第二章:IP地址详解 第三章:进制转换 第四章:DOS基本命令与批处理 第五章:用户与组管理 第六章:服务器远程 ...

  2. 51Nod_1925 进制转换【进制+枚举】

                                            51Nod_1925 进制转换 http://www.51nod.com/Challenge/Problem.html# ...

  3. 三分钟熟悉进制转换与位运算

    微信搜索[NO编程],关注这个不一样的公众号. 个人网站:www.newobject.cc 版权声明:本文为原创文章,转载请注明出处. 进制和位运算简介 进制也叫进位制,是一种记数方法,也称进位计数法 ...

  4. 进制转换--(2-8)为什么2的3次方=8,所以三位变一位

    我们知道2进制到8进制的转换是三位变一位,因为2的3次方=8,可是反过来,为什么2的3次方=8,就是三位变一位呢? 首先看下 二进制的概念,基数R=2的进位计数制称为二进制,二进制数中只有0和1两个基 ...

  5. Qt多功能计算器(三)——进制转换

    项目介绍 本篇文章的内容是计算器的第三个功能--进制转换,这个功能相比上一个功能--三角函数的实现略微困难一些.程序的逻辑从理论上说只要修改界面和部分槽函数就可以实现2-36任意进制互相转换,这里只实 ...

  6. 【C++】R进制转10进制,10进制转R进制

    1.10进制转R进制 直接对每一位做除法,求对应余数累加上去即可. #include<bits/stdc++.h> using namespace std; typedef long lo ...

  7. python进制转换函数

    一:二,八,十六进制转十进制 注意2进制对应的数## 标题值范围只能是0和1,超过范围会报错,8进制和16进制同理. print(int('100',2)) #二进制转十进制,int('20',2) ...

  8. 不同进制数之间的转换

    一.都有哪些进制? ①二进制: 只有0.1两个数字,以0b开头; ②八进制: 0.1.2.3.4.5.6.7,以0开头; ③十进制: 0.1.2.3.4.5.6.7.8.9 ④十六进制: 0.1.2. ...

  9. 任意进制转换为十进制(十六进制转换为十进制)

    一.十六进制转换为十进制 unsigned long HextoDec(char *hex, int length) {int i;unsigned long rslt = 0;for (i = 0; ...

最新文章

  1. ES6 你可能不知道的事 – 基础篇
  2. 计算字符串和文件的MD5值
  3. python适合做后端开发吗-Python真的不适合做后端开发语言吗?
  4. Spring IOC 容器源码分析 - 循环依赖的解决办法
  5. 工作74:vue带参数跳转其他页面
  6. Python twisted框架使用解析
  7. JS当中的无限分类递归树
  8. 每个创始人都需要了解的来自 Y Combinator 的 13 个见解
  9. keepalived原理和安装
  10. Direct3D顶点结构使用总结
  11. 联想计算机usb驱动程序,联想笔记本USB3.0驱动
  12. 链表大小排序方法c语言,链表排序——选择排序法(纯C语言版)
  13. java cpu100 解决办法_[Java] CPU 100% 原因查找解决
  14. 耳机在电脑上测试有声音,但是网页和视频没有声音
  15. php收付同分账,php微信分账功能 —— app支付
  16. easypoi 语法_高考阅读amp;语法填空amp;完型amp;词汇amp;句型amp;翻译amp;语法 系列大合集 找资料不愁了...
  17. 微信小程序之数据传递
  18. MySQL中varchar最大长度是多少(真正的官网解释,事实说话)
  19. Cocos2dx游戏开发素材/学习网站分享
  20. python内置函数有哪些_Python 中的内置函数(一)

热门文章

  1. ArcGIS Maritime Server 开发教程(八)ArcGIS Bathymetry 扩展模块
  2. Shell脚本和Python查看Nginx并发连接数、进程数和常驻内存占用情况
  3. 全面使用禅道做敏捷开发的规范化管理分享
  4. asp.net数据库连接web.config配置
  5. 手机游戏再造创业神话 80后月入过百万
  6. python分配问题_1.1python解决数学建模之席位分配问题
  7. Spark中DataFrame 基本操作函数
  8. sqoop导入数据(保持一致性)--staging-table
  9. 解决Caused by: GSSException: (Mechanism level: Failed to find any Kerberos tgt)
  10. mysql表损坏自动修复工具_对MySQL数据表(已损坏)的修复