111…
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:308 测试通过:89
总提交:308 测试通过:89
描述
给定任何不可被2或者5整除的整数n(0 <= n <= 10000)。有一些n的倍数,它们按十进制表示是一个由1组成的序列。那么这种类型的n倍数中最小数有多少位?
输入
每行包含一个数n
输出
输出位数。
注意:输出部分的结尾要求包含一个多余的空行。
样例输入
3
7
9901
样例输出
3
6
12
题目来源
“IBM南邮杯”2009
分析:
1mod3= 1 = 1mod3,
(1*10+1)mod3 = 2 = 11mod3,
(2*10+1)mod3 = 0 = 111mod3,
(0*10+1)mod3 = 1 = 1111mod3,
...
#include<stdio.h>
//111…
int main()
{
int n, tag, counts;
while(scanf("%d",&n) != EOF)
{
counts = 1;
tag = 1 % n;
while(tag)
{
counts ++;
tag = (tag*10+1) % n;
}
printf("%d\n",counts);
}
return 0;
}