题解:P13185 [GCJ 2016 Qualification] Counting Sheep
题目大意:
枚举
思路:
显然,只有当 INSOMNIA。
定义函数
bool num[10];
void digit(long long x){
while(x>0){
num[x%10]=true;
x/=10;
}
}
定义函数
bool num[10];
bool judge(){
for(int i=0;i<10;i++){
if(!num[i]){
return false;
}
}
return true;
}
代码:
#include <bits/stdc++.h>
using namespace std;
bool num[10];
bool judge(){ // 判断是否全部出现。
for(int i=0;i<10;i++){
if(!num[i]){
return false;
}
}
return true;
}
void digit(long long x){ // 拆分数字。
while(x>0){
num[x%10]=true;
x/=10;
}
}
int main(){
int T;
scanf("%d",&T);
for(int i=1;i<=T;i++){
memset(num,0,sizeof(num)); // 清空。
int n;
long long cnt;
scanf("%d",&n);
if(n==0){ // 特判。
printf("Case #%d: INSOMNIA\n",i);
continue;
}
cnt=n;
for(int j=1;;j++){
digit(cnt*j);
if(judge()){
printf("Case #%d: %d\n",i,cnt*j);
break;
}
}
}
return 0;
}