题目描述
思路
因为 \(1-9\) 且不能重复使用, 所以从 \(123\) 循环至 \(789\), 相应的 \(2\) 倍, \(3\) 倍, 即为另两个数字.
对每个数字进行拆分, 所用数字使用次数 \(+1\), 判断是否每个数字都被使用且只使用一次, 输出即可.
Code
#include <cstdio>
#include <cstring>
int s[15];
void cf(int x) {
while (x != 0) {
s[x%10]++;
x /= 10;
}
}
int main() {
for (int i = 123; i <= 789; i++) {
int j = i * 2, k = i * 3;
cf(i); cf(j); cf(k);
if (s[1] == 1 && s[2] == 1 && s[3] == 1 && s[4] == 1 && s[5] == 1 && s[6] == 1 && s[7] == 1 && s[8] == 1 && s[9] == 1)
printf("%d %d %d\n", i, j, k);
memset(s, 0, sizeof(s));
}
return 0;
}
标签:连击,数字,P1008,int,Luogu,123,include
From: https://www.cnblogs.com/Gery-blog/p/17446998.html