3 条题解
-
2
#include <iostream> using namespace std; int main() { cout << "192" << " " << "384" << " " << "576" << endl << "219" << " "; cout << "438" << " " << "657" << endl << "273" << " " << "546" << " "; cout << "819" << endl << "327" << " " << "654" << " " << "981" << endl; return 0; }
-
0
#include <iostream> #include <algorithm> using namespace std; int main(){ int a[9]={1,2,3,4,5,6,7,8,9}; do if((a[0]*100+a[1]*10+a[2])*2*3==(a[3]*100+a[4]*10+a[5])*1*3&&(a[0]*100+a[1]*10+a[2])*2*3==(a[6]*100+a[7]*10+a[8])*1*2)cout<<a[0]*100+a[1]*10+a[2]<<' '<<a[3]*100+a[4]*10+a[5]<<' '<<a[6]*100+a[7]*10+a[8]<<endl; while(next_permutation(a,a+9)); return 0; }
-
0
#include<bits/stdc++.h> using namespace std; /* 循环第一个数的可能范围,由于第二个数是第一个数的2倍 第三个数是第一个数的3倍,因此第一个数的范围最小是100,最大是333 第一个数有了,第二个数和第三个数就有了,将三个数组合成一个9位数 判断这个9位数各个位分别用到了数字1 ~ 9,那么这个3个数就是符合条件的数 */ int main() { int x, y, z; //第一个3位数 for(int i = 100; i <= 333; i++){ x = 2*i;//第二个 y = 3*i;//第三个 z = i*1000000 + x*1000 + y;//9位数 //如果z用到了1 ~ 9 的每个数 int a[10] = {0}; while(z != 0){ a[z%10]++; z /= 10; } //判断1 ~ 9是否出现了一次 bool f = true;//假设都出现了一次 for(int j = 1; j <= 9; j++){ if(a[j] != 1){ f = false; break; } } if(f == true){ cout << i << " " << x << " " << y << endl; } } return 0; }
- 1
信息
- ID
- 464
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 6
- 标签
- 递交数
- 106
- 已通过
- 36
- 上传者