全部代码
#include <stdio.h>
#include <math.h>
int main()
{
const int max = 10;//最多10组数据
int t,x[max],m[max],k[max],c[max];
printf("Sample Input\n");
scanf("%d",&t);
getchar();//读取换行符
int i;
for(i=0;i<t;i++)
{
scanf("%d %d %d %d", &x[i],&m[i],&k[i],&c[i]);
getchar();//读取换行符
while((x[i]<1 || x[i]>9) || (m[i]<1 || m[i]>1010) || (k[i]<0 || k[i]>10000) || (c[i]<0 || c[i]>10000))//输入错误时
{
printf("输入错误!正确的输入范围是:1≤x≤9 1≤m≤1010 0≤c<k≤10,000。请重新输入:\n");
scanf("%d %d %d %d", &x[i],&m[i],&k[i],&c[i]);
getchar();//读取换行符
}
}
printf("Sample Output\n");
for(i=0;i<t;i++)
{
int n = 0;//数值
int j;
for(j=0;j<m[i];j++)
{
n = n + x[i] * pow(10,j);
}
printf("Case #%d:\n",i+1);
if(n%k[i]==c[i])
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
return 0;
}
运行结果
疑问
0≤c<k≤10,000中k可以等于0,这应该是错的吧,一个数不可以对0取模。若在程序中输入1 1 0 0便会报错。