ZZULIOJ 1149: 组合三位数之二
题目描述
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。
输入
无
输出
输出所有满足条件的三位数组合,按第一个数的升序顺序输出。
样例输出192 384 576
219 438 657
…
这题可以用dfs或者判断每组数字,是不是1到9都用到了。
#include<stdio.h>
int panduan(int a, int b, int c);
int main(){int q;for (q = 123; q < 333; q++){int p = q * 2;int m = q * 3;if (panduan(q, p, m) == 1)printf("%d %d %d\n", q, p, m);}return 0;
}
int panduan(int a, int b, int c){int p[9] = { 0 };while (a){p[a % 10 - 1]++;a /= 10;}while (b){p[b % 10 - 1]++;b /= 10;}while (c){p[c % 10 - 1]++;c /= 10;}for (int i = 0; i < 9; i++)if (p[i] == 0 || p[i]>1)return 0;return 1;
}
DFS
#include<iostream>
using namespace std;
int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int c[10];
int b[10];
void dfs(int d){int i;if (d == 10){int sum1 = b[1] * 100 + b[2] * 10 + b[3];int sum2 = b[4] * 100 + b[5] * 10 + b[6];int sum3 = b[7] * 100 + b[8] * 10 + b[9];if (sum1&&sum2 == 2 * sum1&&sum3 == 3 * sum1){for (i = 1; i <= 9; i++){cout << b[i];if (i % 3 == 0)cout << " ";}cout << endl;}}else{for (i = 1; i <= 9; i++)if (c[i] == 0){c[i] = 1, b[d] = a[i], dfs(d + 1);c[i] = 0;}}
}
int main(){dfs(1);
}
ZZULIOJ 1149: 组合三位数之二相关推荐
- ZZULIOJ 1148: 组合三位数之一
题目描述 把1.2.3.4.5.6.7.8.9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数.按从小到大的顺序输出这三个三位数. 输入 无 输出 按从小到大的顺序输出这三个三位数 ...
- 详细代码注释1148: 组合三位数之一
题目描述 48: 组合三位数之一 时间限制: 1 Sec 内存限制: 128 MB 提交: 5197 解决: 3705 把1.2.3.4.5.6.7.8.9组合成3个3位数,要求每个数字仅使用一次,使 ...
- 1148: 组合三位数之一 C语言
1148: 组合三位数之一 时间限制: 1 Sec 内存限制: 128 MB 提交: 4056 解决: 2880 [状态] [讨论版] [提交] [命题人:admin] 题目描述 把1.2.3.4.5 ...
- zzulioj1148: 组合三位数之一
1148: 组合三位数之一 题目描述 把1.2.3.4.5.6.7.8.9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数.按从小到大的顺序输出这三个三位数. 输入 无 输出 按从 ...
- C语言数组练习-组合三位数
要求:将0到9这十个数字分成三个3位数,要求第一个3位数,正好是第二个3位数的1/2,是第三个3位数的1/3.问应当怎样分,编写程序实现. #声明:本代码思路较为简单,但书写复杂请酌情参考. ---- ...
- 组合三位数c语言第八周,C语言教案-第八周教学提纲.doc
第八节 数组 --一维数组 1:通过对本节课的学习,能够了解.掌握有关数组的相关概念及一维数组定义.初始化.引用和在程序中使用. 1.1教学目的: 1. 数组的相关概念 2. 一维数组的定义.初始化. ...
- 7-88 组合成最小的三位数
7-88 组合成最小的三位数 输入一个三位数的正整数,将数字位置重新排列,组成一个尽可小的三位数. 输入格式: 输入一个三位的正整数. 输出格式: 输出组合之后最小的三位值正整数. 输入样例: 315 ...
- C语言编程求三位数各位之和,C趣味程序(二)(04)求三位阶乘和数
1.5 阶乘和数 一个正整数如果等于组成它的各位数字的阶乘之和,该整数称为阶乘和数. 例如,145=1!+4!+5!,则145是一个三位阶详细和数.是否还有其它三位阶乘和数?共有多少个阶乘和数? 1. ...
- python数字组合算法_python - 简单算法题 - 求三位数组合
求三位数组合 lst = [3, 6, 2, 7] 这四个数字能组成多少个互不相同且无重复数字的三位数?比如362算一个,326算一个,请逐个输出他们 思路分析 从4个数里面取3个数,且不重复,然后进 ...
最新文章
- 2202年了,AI还是不如猫!图灵奖得主Yann LeCun:3大挑战依然无解
- C# Regex(2)
- 计算机汉字救亡运动简史丨视频
- c html canvas,HTML5 canvas
- Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://sch
- BAD APPLE C++控制台程序
- JAVA:说说你对序列化的理解
- SpringBoot使用@Scheduled创建定时任务
- var,object和dynamic
- Sparrow - Distributed, Low Latency Scheduling
- 后端技术栈学习路线与面试技巧指北
- 超详细java中的ClassLoader详解
- 轻松处理 针式打印机故障解决方法
- 实测realme手机丢失定位功能
- MDUKEY超级节点配置及指南(简)
- Java学习之面向对象
- 户外直播信号差,老出现卡顿现象怎么办?
- 【工具】1343- NVS —— js 实现的node版本管理工具
- raid0,raid1,raid5
- 十进制负数转化成二进制