C++算法代码——三连击[NOIP1998 普及组]
2024-09-01 11:39:43
题目来自:https://www.luogu.com.cn/problem/P1008
题目背景
本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。
题目描述
将 1, 2, \ldots , 91,2,…,9 共 99 个数分成 33 组,分别组成 33 个三位数,且使这 33 个三位数构成 1 : 2 : 31:2:3 的比例,试求出所有满足条件的 33 个三位数。
输入格式
无
输出格式
若干行,每行 33 个数字。按照每行第 11 个数字升序排列。
输入输出样例
输入 #1
无
输出 #1
192 384 576
* * *
... * * *
(输出被和谐了)
作者分析:在这里我们判断九个数不同我们只需求出九个数的和和九个数旳积是否分别得45和362880就行了。
#include <cstdio>
using namespace std; int main(){
for (int a = 1;a <= 9;a++)
for (int b = 1;b <= 9;b++)
for (int c = 1;c <= 9;c++)
for (int d = 1;d <= 9;d++)
for (int e = 1;e <= 9;e++)
for (int f = 1;f <= 9;f++)
for (int g = 1;g <= 9;g++)
for (int h = 1;h <= 9;h++)
for (int i = 1;i <= 9;i++)
if (a + b + c + d + e + f + g + h + i == 45 && a * b * c * d * e * f * g * h * i == 362880){
if(d * 100 + e * 10 + f == (a * 100 + b * 10 + c) * 2 && g * 100 + h * 10 + i == (a * 100 + b * 10 + c) * 3){
printf("%d %d %d\n",a * 100 + b * 10 + c,d * 100 + e * 10 + f,g * 100 + h * 10 + i);
}
}
}
代码有点长……有更好的解法
最新文章
- Three.js学习(相机,场景,渲染,形状)
- JS各种算法小例子
- 数据库路由器 ICX
- jquery冲突细节
- mongodb 和 mysql 的对照
- mysql Host ‘XXXXXX’ is blocked because of many connection errors
- Win8 弹出窗口不在最前端的解决方法
- javascript笔记6之函数
- 集装箱学习(两):动手模拟AOP
- 单点登录SSO原则的实现
- 有关Flash中与Java调用时候注意的一些事项
- 完整的 HTML 4 + HTML 5 实体参考手册
- 关于ZendStudio 10.5的破解
- java web Servlet 学习笔记 -3 会话管理技术
- week 10 blog
- Java工具类DateFormatUtils详解
- ElasticSearch match, match_phrase, term区别
- iOS:在cell中使用倒计时的最佳方法
- [CSAcademy]Cycle Tree
- myeclipse按.自动提示方法
热门文章
- 正则表达式获取字符串的input标签的属性值
- jquery的ajax提交时加载处理方法
- java中的四种内部类使用(1)
- spring源码学习笔记之容器的基本实现(一)
- EXCEL序列
- Python Line Messaging Api
- CF Hello2020 D. New Year and Conference
- HDU4467 Graph【轻重点维护】
- BZOJ2555 SubString【SAM + Link Cut Tree】
- 【uva 247】Calling Circles(图论--Floyd 传递闭包+并查集 连通分量)