UVA - 202 Repeating Decimals
来源:互联网 发布:热云数据 编辑:程序博客网 时间:2024/04/26 01:38
题目大意:求循环小数,循环节用()括住,并输出循环节长度。
解题思路:a/b 时,b 不变,a 取余数循环除 b,当 a 出现相同数值时,小数开始循环,所以有一个数组用来判断被除数是否出现过。模拟除法过程,储存商,当余数重复,停止运算。
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<ctype.h>using namespace std;int used[3000000];int ans[3000000];int loop[3000000];int main() { int a, b; while(scanf("%d%d", &a, &b) != EOF) { memset (used, 1, sizeof(used)); printf("%d/%d = %d.", a, b, a/b); a %= b; int cnt = 0; while (used[a]) { cnt++; used[a] = 0; ans[a] = cnt; a *= 10; loop[cnt] = a / b; a %= b; } for (int i = 1; i < ans[a]; i++) printf("%d", loop[i]); printf("("); for (int i = ans[a], j = 1; i <= cnt && j <= 50; i++, j++) { printf("%d", loop[i]); if (j == 50 && i < cnt) printf("..."); } printf(")\n %d = number of digits in repeating cycle\n\n", cnt-ans[a]+1); } return 0;}
0 0
- UVa 202 - Repeating Decimals
- UVa 202 - Repeating Decimals
- UVa 202 - Repeating Decimals
- UVa 202 Repeating Decimals
- Uva 202 Repeating Decimals
- UVA - 202 Repeating Decimals
- UVa 202 Repeating Decimals
- UVa-202 - Repeating Decimals
- UVa 202 Repeating Decimals
- UVa 202 Repeating Decimals
- UVA - 202 Repeating Decimals
- Uva - 202 - Repeating Decimals
- UVA - 202 Repeating Decimals
- [UVA 202]Repeating Decimals
- UVa 202 Repeating Decimals
- uva 202 Repeating Decimals
- UVa 202 - Repeating Decimals
- UVa 202, Repeating Decimals
- mogoose_mongodb_entity
- 有趣算法-a到z所有组合情况,期待斧正
- Spring之整合Apache CXF框架实现WebServices远程调用
- 卡特兰数(Catalan Number)
- JavaSE面试题【每天一整理】
- UVA - 202 Repeating Decimals
- Notepad++进行php开发所必需的插件【转】
- POJ 2975 Nim <Nim 博弈>
- Codeforces Round #364 (Div. 2) B. Cells Not Under Attack 标记数组
- Git从菜鸟到入门到放弃
- java-基础-异常
- Bestcoder-Aaronson
- sql语句优化(一)
- java值传递,引用传递