码迷,mamicode.com
首页 > 其他好文 > 详细

Luogu 1008 三连击

时间:2019-08-13 00:13:56      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:需要   amp   ase   题目   output   main   put   排列   oid   

题目背景

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

题目描述

1,2, \cdots ,91,2,?,9共99个数分成33组,分别组成33个三位数,且使这33个三位数构成1:2:31:2:3的比例,试求出所有满足条件的33个三位数。

输入格式

木有输入

输出格式

若干行,每行33个数字。按照每行第11个数字升序排列。

输入输出样例

输入
输出
192 384 576
* * *
...

* * *
(输出被和谐了)

【分析】
  刚拿到这道题的时候感觉很玄学,但是后来才想到只需要模拟就好,顿时觉得轻松。

因为数字不重复a便从123开始模拟,结束就暂且定为333.。因为要保证1~9不重复,所以我们依次取出a、b、c,三个数的每一位相乘,看是否等于9的阶乘,用同一法的数学思想可证得九个数相乘等于9的阶乘有且仅有1~9九个数。(补:阶乘定义:一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。)

【标程】

 1 #include<cstdio>
 2 int a, b, c;
 3 int Mul(int x) {
 4     return (x / 100) * (x / 10 % 10) * (x % 10);
 5 }
 6 void solve() {
 7     for (a = 123; a <= 333; ++ a) {
 8         b = 2 * a;
 9         c = 3 * a;
10         if (Mul(a) * Mul(b) * Mul(c) == 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2)
11             printf("%d %d %d\n", a, b, c);
12     }
13 }
14 int main() {
15     solve();
16     return 0;
17 }

 

Luogu 1008 三连击

标签:需要   amp   ase   题目   output   main   put   排列   oid   

原文地址:https://www.cnblogs.com/Limbo-To-Heaven/p/11337312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!