UVa 202 Repeating Decimals【模拟】
2015-05-04 21:01
423 查看
题意:输入整数a和b,输出a/b的循环小数以及循环节的长度
学习的这一篇
http://blog.csdn.net/mobius_strip/article/details/39870555
因为n%m的余数只可能是0到m-1中的一个,根据抽屉原理,当计算m+1次时至少存在一个余数相同
发现看了题解理解起来也好困难啊,
后来手动画了一下5/7的竖式除法的式子,,理解一些了
View Code
还得再多画一画----好晕--------------
写模拟写得好难受------------
goooooooooooooo----------
学习的这一篇
http://blog.csdn.net/mobius_strip/article/details/39870555
因为n%m的余数只可能是0到m-1中的一个,根据抽屉原理,当计算m+1次时至少存在一个余数相同
发现看了题解理解起来也好困难啊,
后来手动画了一下5/7的竖式除法的式子,,理解一些了
#include<iostream> #include<cstdio> #include<cstring> #include <cmath> #include<stack> #include<vector> #include<map> #include<set> #include<queue> #include<algorithm> using namespace std; #define foreach(i,c) for (__typeof(c.begin()) i = c.begin(); i != c.end(); ++i) typedef long long LL; const int INF = (1<<30)-1; const int mod=1000000007; const int maxn=100005; int vis[maxn],r[maxn],s[maxn]; int main(){ int n,m; while(cin>>n>>m){ memset(vis,0,sizeof(vis)); memset(r,0,sizeof(r)); memset(s,0,sizeof(s)); int cnt=0; int t=n; r[cnt++]=n/m; n=n%m; while(!vis &&n){ vis =cnt; s[cnt]=n;//s数组存的是对应的余数 r[cnt++]=n*10/m;//r数组存的是对应的商 n=n*10%m; } printf("%d/%d = %d.",t,m,r[0]); for(int i=1;i<cnt&i<=50;i++){ if(s[i]==n&&n) printf("("); printf("%d",r[i]); } if (!n) printf("(0"); if (cnt > 50) printf("..."); printf(")\n"); printf(" %d = number of digits in repeating cycle\n\n",!n?1:cnt-vis ); } return 0; }
View Code
还得再多画一画----好晕--------------
写模拟写得好难受------------
goooooooooooooo----------
相关文章推荐
- UVa202-Repeating Decimals-循环小数-字符串、模拟
- uva 202 Repeating Decimals 模拟
- 假期训练—— Repeating Decimals UVA - 202 模拟
- UVa 202 - Repeating Decimals
- Uva - 202 - Repeating Decimals
- UVA - 202 Repeating Decimals
- Problem 020 ——UVa 202 - Repeating Decimals
- UVA202 UVALive5141 Repeating Decimals
- [UVA202]Repeating Decimals
- Uva - 202 - Repeating Decimals
- Uva.202 Repeating Decimals
- Uva 202 - Repeating Decimals【要求的格式呢!!!】
- UVa 202 - Repeating Decimals
- 算法竞赛入门经典第三章3-8 Repeating Decimals UVA - 202
- Repeating Decimals UVA - 202
- UVA-202 Repeating Decimals
- UVa 202 Repeating Decimals
- UVa 202 - Repeating Decimals
- Repeating Decimals,ACM/ICPC World Finals 1990,UVa202
- UVA - 202 Repeating Decimals