题目背景
本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。
题目描述
将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 ", a, b, c); 12 } 13 } 14 int main() { 15 solve(); 16 return 0; 17 }