Description
题目描述
求由最小的一个N,N个数码1组成的数能被M整除? 比如M=3时,111能被3整除。M=2时,则不存在这样的N。
输入
第一行是一个整数K(K≤1,000),表示样例的个数。 以后每行一个整数M(1≤M≤1,000,000)
输出
每行输出一个样例的结果,如果不存在这样的N,输出0。
样例输入
5
1
2
3
4
999989
样例输出
1
0
3
0
473670
Sample Input
Sample Output
Source
一开始看题目,看不太明白。
总的来说,就是,n个1组成的数能否被m整除,如果能,输出n,n<=m。
我的题解中count是计数器,n是count个1组成的数,我们输出count
#include <stdio.h>
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
int m;
scanf("%d",&m);
int count=0,i,n=1;//count是计数器
for(i=0;i<m;i++)//count<=m
{
n=n%m;
count++;
if(n==0)
{
break;
}
else
{
n=n*10+1;//这里n已经是n=n%m了,所以n可能不是由1组成的数了,但是n=n*10+1,一样可以这么赋值。例如111能被3整除,21同样也能被3整除
}
}
if(n==0)
{
printf("%d\n",count);
}
else
{
printf("0\n");
}
}
}
写于2021年8月29日17:52分。