1149: 组合三位数之二
时间限制: 1 Sec 内存限制: 128 MB提交: 958 解决: 574
[提交][状态][讨论版][命题人:admin]
题目描述
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。
输入
无
输出
输出所有满足条件的三位数组合,按第一个数的升序顺序输出。
样例输出
192 384 576
219 438 657
.........
#include<iostream> #include<cstring> using namespace std ; bool check(int num1 , int num2 , int num3){ int visit[10] ; memset(visit , 0 , sizeof(visit)) ; while(num1){ visit[num1%10] = 1 ; num1 /=10 ; } while(num2){ visit[num2%10] = 1 ; num2 /= 10 ; } while(num3){ visit[num3%10] = 1 ; num3 /= 10 ; } bool flag = true ; for(int i=1 ; i<=9 ; i++){ if(visit[i] == 0){ flag = false ; } } return flag ; } int main(){ for(int i=100 ; i<=333 ; i++){ if(check(i , 2*i , 3*i)){ cout<< i <<" " << 2*i<<" "<<3*i<<endl ; } } return 0 ; }