专栏文章
题解:P13185 [GCJ 2016 Qualification] Counting Sheep
P13185题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miox3qe4
- 此快照首次捕获于
- 2025/12/03 02:34 3 个月前
- 此快照最后确认于
- 2025/12/03 02:34 3 个月前
题目大意:
枚举 的倍数, 直到全部十个数字都出现过为止。
思路:
显然,只有当 为 时,输出
INSOMNIA。定义函数 将每个 的倍数进行拆分,并存入数组。
CPPbool num[10];
void digit(long long x){
while(x>0){
num[x%10]=true;
x/=10;
}
}
定义函数 进行判断。
CPPbool num[10];
bool judge(){
for(int i=0;i<10;i++){
if(!num[i]){
return false;
}
}
return true;
}
代码:
CPP#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;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...