1149: 组合三位数之二
时间限制: 1 Sec 内存限制: 128 MB
提交: 3383 解决: 2286
[状态] [讨论版] [提交] [命题人:admin]
题目描述
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。
输入
无
输出
输出所有满足条件的三位数组合,按第一个数的升序顺序输出。
样例输出 Copy
192 384 576
…
#include// 函数记录1-9数字使用的次数,如果都只使用一次返回1,否则返回-1 int Str(char b[]) { int a[9] = {0}; int index; for(index = 0; index < 9; index++ ) { switch(b[index] ) { case '1': { a[0] ++; break; } case '2': { a[1] ++; break; } case '3': { a[2] ++; break; } case '4': { a[3] ++; break; } case '5': { a[4] ++; break; } case '6': { a[5] ++; break; } case '7': { a[6] ++; break; } case '8': { a[7] ++; break; } case '9': { a[8] ++; break; } } } if (a[0] == 1 && a[1] == 1 && a[2] == 1 && a[3] == 1 && a[4] == 1 && a[5] == 1 && a[6] == 1 && a[7] == 1 && a[8] == 1 ) { return 1; } return -1; } int main() { int i ; char b[10] = {0}; for (i=100; i <333; i++) { sprintf(b, "%d%d%d", i, i*2, i*3 ); if ( Str(b) == 1 ) { printf( "%d %d %dn", i, i*2, i*3 ); } } return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)