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;
}
//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;
}
相关文章推荐
- [ACM_搜索] ZOJ 1103 || POJ 2415 Hike on a Graph (带条件移动3盘子到同一位置的最少步数 广搜)
- CF 55D 离散化各个位数的倍数
- CF 55D 离散化各个位数的倍数
- zoj 1526 Big Number (N阶乘的位数)
- ZOJ 1763: A Simple Question of Chemistry 【位数问题setprecision】
- ZOJ 1889 Ones
- zoj 1889
- ZOJ 2022题解,起初此题纠结了很久。方法没有用对,后经大牛指点恍然大悟,原来就是求1到N有多少是5的倍数,再求25的倍数,125的倍数如此循环。
- zoj 1889 ones (同余定理)
- zoj 1889 Ones(Mark~~)
- CF 55D 离散化各个位数的倍数
- CF 55D 离散化各个位数的倍数
- ZOJ 1889 Ones
- zoj_最少点支配
- ZOJ-1889
- ZOJ 1045 题目大意:叠放卡片,使上面第一张盖住第二张的1/2,第二张盖第三张的1/3,依次类推,输出达到c的最少卡片数
- CF 55D 离散化各个位数的倍数
- CF 55D 离散化各个位数的倍数
- codeforces 792 C. 删除尽量少的位数后是3的倍数 (取余问题+分类讨论+模拟吧)
- CF 55D 离散化各个位数的倍数