您的位置:首页 > 其它

ZOJ 1889 n的倍数使11111…位数最少

2010-05-12 11:06 190 查看
////////////////////////////////////////////////////////
//1889 n的倍数使11111…位数最少
//思路:使题意转变为:给出n,算出最小的x满足10^x mod 9n = 1 (思路完全与1489一样)
// 高精度,需要不断地缩小数据的规模。首先,n=1时,x=0;
// 其次,每次把10^k nod 9n的余数乘10,得到是原(10^k)*10的余数,即10^(k+1)
// 的余数。

#include<iostream>
using namespace std;

int main()
{
long temp,n,count;
while(cin>>n)
{
if(n==1)
{
cout<<1<<endl;
continue;
}
n=9*n;
count=1;
temp=10;
while(temp!=1)
{
temp*=10;
count++;
temp%=n;
}
cout<<count<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: