一个简单的ACM题目,求看我的代码和题解的差别
绐任一个整数n(1<=n<=9999),且n不可被2或5除尽。n的某一个倍数以十进制的表示法将是一连串的1,请问这一连串的1最少是几位数?例如:n=3,3*37=111,...
绐任一个整数 n(1 <= n <= 9999),且 n 不可被 2 或 5 除尽。n的某一个倍数以十进制的表示法将是一连串的1,请问这一连串的1最少是几位数?
例如:
n=3,3*37=111,所以答案是3位数。
n=7,7*15873=111111,所以答案是6位数。
Input
每一列测试资料有1个整数 n
Output
对每一测试资料n,其某一个倍数以十进制的表示法将是一连串的1,请问这一连串的1最少是几位数?
--------------------------------------------------------------------------------------------
#include<cstdio>
int main()
{
int n;
int s,i;
while(scanf("%d",&n)==1)
{
s=2;
i=11;
while(i%n!=0)
{
i=(i%n)*10+1;//这样是对的
// i=10*i+1; 这样输入9901不能出答案
s++;
}
printf("%d\n",s);
}
return 0;
} 展开
例如:
n=3,3*37=111,所以答案是3位数。
n=7,7*15873=111111,所以答案是6位数。
Input
每一列测试资料有1个整数 n
Output
对每一测试资料n,其某一个倍数以十进制的表示法将是一连串的1,请问这一连串的1最少是几位数?
--------------------------------------------------------------------------------------------
#include<cstdio>
int main()
{
int n;
int s,i;
while(scanf("%d",&n)==1)
{
s=2;
i=11;
while(i%n!=0)
{
i=(i%n)*10+1;//这样是对的
// i=10*i+1; 这样输入9901不能出答案
s++;
}
printf("%d\n",s);
}
return 0;
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询