Bailian2912 三个完全平方数【进制+枚举】
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 三个完全平方数【进制+枚举】相关推荐
- 《网络安全工程师笔记》 第三章:进制转换
注:本笔记来自温晓飞老师的网络安全课程 第三章:进制转换 第一章:虚拟化架构与系统部署 第二章:IP地址详解 第三章:进制转换 第四章:DOS基本命令与批处理 第五章:用户与组管理 第六章:服务器远程 ...
- 51Nod_1925 进制转换【进制+枚举】
51Nod_1925 进制转换 http://www.51nod.com/Challenge/Problem.html# ...
- 三分钟熟悉进制转换与位运算
微信搜索[NO编程],关注这个不一样的公众号. 个人网站:www.newobject.cc 版权声明:本文为原创文章,转载请注明出处. 进制和位运算简介 进制也叫进位制,是一种记数方法,也称进位计数法 ...
- 进制转换--(2-8)为什么2的3次方=8,所以三位变一位
我们知道2进制到8进制的转换是三位变一位,因为2的3次方=8,可是反过来,为什么2的3次方=8,就是三位变一位呢? 首先看下 二进制的概念,基数R=2的进位计数制称为二进制,二进制数中只有0和1两个基 ...
- Qt多功能计算器(三)——进制转换
项目介绍 本篇文章的内容是计算器的第三个功能--进制转换,这个功能相比上一个功能--三角函数的实现略微困难一些.程序的逻辑从理论上说只要修改界面和部分槽函数就可以实现2-36任意进制互相转换,这里只实 ...
- 【C++】R进制转10进制,10进制转R进制
1.10进制转R进制 直接对每一位做除法,求对应余数累加上去即可. #include<bits/stdc++.h> using namespace std; typedef long lo ...
- python进制转换函数
一:二,八,十六进制转十进制 注意2进制对应的数## 标题值范围只能是0和1,超过范围会报错,8进制和16进制同理. print(int('100',2)) #二进制转十进制,int('20',2) ...
- 不同进制数之间的转换
一.都有哪些进制? ①二进制: 只有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. ...
- 任意进制转换为十进制(十六进制转换为十进制)
一.十六进制转换为十进制 unsigned long HextoDec(char *hex, int length) {int i;unsigned long rslt = 0;for (i = 0; ...
最新文章
- ES6 你可能不知道的事 – 基础篇
- 计算字符串和文件的MD5值
- python适合做后端开发吗-Python真的不适合做后端开发语言吗?
- Spring IOC 容器源码分析 - 循环依赖的解决办法
- 工作74:vue带参数跳转其他页面
- Python twisted框架使用解析
- JS当中的无限分类递归树
- 每个创始人都需要了解的来自 Y Combinator 的 13 个见解
- keepalived原理和安装
- Direct3D顶点结构使用总结
- 联想计算机usb驱动程序,联想笔记本USB3.0驱动
- 链表大小排序方法c语言,链表排序——选择排序法(纯C语言版)
- java cpu100 解决办法_[Java] CPU 100% 原因查找解决
- 耳机在电脑上测试有声音,但是网页和视频没有声音
- php收付同分账,php微信分账功能 —— app支付
- easypoi 语法_高考阅读amp;语法填空amp;完型amp;词汇amp;句型amp;翻译amp;语法 系列大合集 找资料不愁了...
- 微信小程序之数据传递
- MySQL中varchar最大长度是多少(真正的官网解释,事实说话)
- Cocos2dx游戏开发素材/学习网站分享
- python内置函数有哪些_Python 中的内置函数(一)
热门文章
- ArcGIS Maritime Server 开发教程(八)ArcGIS Bathymetry 扩展模块
- Shell脚本和Python查看Nginx并发连接数、进程数和常驻内存占用情况
- 全面使用禅道做敏捷开发的规范化管理分享
- asp.net数据库连接web.config配置
- 手机游戏再造创业神话 80后月入过百万
- python分配问题_1.1python解决数学建模之席位分配问题
- Spark中DataFrame 基本操作函数
- sqoop导入数据(保持一致性)--staging-table
- 解决Caused by: GSSException: (Mechanism level: Failed to find any Kerberos tgt)
- mysql表损坏自动修复工具_对MySQL数据表(已损坏)的修复