晚上看到百度之星第二轮比赛的题目,好久没水题了,心血来潮水做一题吧。
太久没用C了,写起来感觉好陌生。
题目:All X
思路嘛就是取模找周期,才取模10000,最多循环10000次总会重复的,
但是要注意进入取模周期前可能会有段干扰数,这里是需要特殊处理的。
#include<stdio.h>
#include<string.h>
int main(){
int cnt, N;
int x ,m, k, c;
int t[10001];
scanf("%d", &N);
for(int i=0; i<N; i++){
printf("Case #%d:\n", i+1);
scanf("%d%d%d%d", &x, &m, &k, &c);
memset(t, -1, sizeof(t));
int left = x % k;
cnt = 0;
while(t[left] == -1 && cnt < m){
t[left] = ++cnt;
left = (left*10+x) % k;
}
if(t[c] == -1){
puts("No");
continue;
}
if(cnt == m){
if(t[c] == cnt){
puts("Yes");
}else{
puts("No");
}
continue;
}
if(t[c]>=t[left] &&(m-t[c])%(cnt-t[left]+1) == 0){
puts("Yes");
}else{
puts("No");
}
}
return 0;
}