题目大意是,输入两个整数 a 和 b ,要求输出 a/b 的循环小数表示以及循环节的长度。

这道题实际上就是用两个数组模拟了一个做除法的过程,qot[] 用来保存每一次相除所得的商(quotient),rmd[] 用来保存每一次相除所得的余数(remainder),若要找到循环节,就只需要每做一次除法时,都遍历一遍两个数组中已经保存的元素,若本次计算所得的 qot 和 rmd 同时与之前保存过的 qot 和 rmd 相同,则可以得出循环节的长度及位置。最后注意格式输出即可。

代码如下:

#include <cstdio>
#include <cstring>
using namespace std;
int qot[3500], rmd[3500];
int main()
{int a, b;while(scanf("%d %d", &a, &b) == 2){int m = 0, n = 0;memset(qot, 0, sizeof(qot));memset(rmd, 0, sizeof(rmd));qot[0] = a / b;rmd[0] = a % b;for(int i = 1; ; i++){qot[i] = rmd[i-1] * 10 / b;rmd[i] = rmd[i-1] *10 % b;for(int j = 1; j < i; j++){if(qot[j] == qot[i] && rmd[j] == rmd[i]){m = i;                                    // m 用来保存循环节的末端位置n = j;                                    // n 用来保存循环节的起始位置break;}}if(n) break;}printf("%d/%d = %d.", a, b, qot[0]);for(int i = 1; i < n && i <= 50; i++)printf("%d", qot[i]);printf("(");for(int i = n; i < m && i <= 50; i++)printf("%d", qot[i]);if(m > 50) printf("...");printf(")\n");printf("   %d = number of digits in repeating cycle\n\n", m-n);}return 0;
}

UVa-202 Repeating Decimals相关推荐

  1. UVA - 202 Repeating Decimals

    Repeating Decimals UVA - 202 题目传送门 解决方法:模拟一下除法,及时记录余数,当一个余数第二次出现时证明开始循环 AC代码 #include <cstdio> ...

  2. UVa 202 Repeating Decimals

    计算循环小数的循环节 输入整数a和b(0<=a<=3000,1<=b<=3000),输出a/b的循环小数表示以及循环节长度. 例如,a=5,b=43,小数表示为0.(11627 ...

  3. UVa 202 - Repeating Decimals —— 分数循环节

    题目:计算分数的循环节. https://vjudge.net/contest/227853#problem/C 分析:数论,组合. n除以m的余数只能是0~m-1,根据抽屉原则,当计算m+1次时至少 ...

  4. Repeating Decimals (计算循环小数)

    //计算循环小数,并找出循环节以及循环节的长度,最后输出时若循环节大于50最后输出省略号. //求循环小数,记录被除数,若被除数相同了则证明循环了. //注意:即使是循环小数,但可能并不是从第一位小数 ...

  5. K - Repeating Decimals(循环小数)

    题目描述 The decimal expansion of the fraction 1/33 is 0.03, where the 03 is used to indicate that the c ...

  6. π-Algorithmist分类题目(3)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...

  7. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  8. UVa Online Judge 工具網站

    UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...

  9. WaWa的奇妙冒险(第一周集训自闭现场)

    第一周周记 (一)例题记录 A-Download Manager (水题) HDU - 3233 Input Output Sample Input Sample Output 理解 AC代码 B-J ...

  10. 算法竞赛入门经典(第二版)第三章习题

    声明:作者水平有限,只是会基础C语言的小菜,C++还未入门.作者仅根据算法竞赛入门经典(第二版)书上第三章习题所述题意而编写,并未严格按照原题的输入输出编写,代码仅经过个人测试(OJ网站太慢了).代码 ...

最新文章

  1. 组合恒等式2 五个基本的组合恒等式 更复杂的技巧与例题
  2. 终于有人讲透了芯片是什么(电子行业人士必读)
  3. 大数据测试之hadoop命令大全 2
  4. 程序员辞职的7个常用理由,你用的是哪一个?
  5. Maven打包时去掉项目版本号
  6. android获取该控件在屏幕,android获取屏幕宽高与获取控件宽高(三种方法)
  7. LeetCode(100)——相同的树(JavaScript)
  8. 2019蓝桥杯C++B组 年号字串;完全二叉树的权值
  9. 100款机器学习数据集
  10. Ynote源码涉及功能解剖
  11. C语言 求素数、排序算法
  12. 2021年黄石二中高考成绩查询,【黄石二中2018高考金榜】黄石二中2004届高考总结...
  13. 支持ECSHOP 2.73手机客户端
  14. 读书笔记 ——《系统程序员成长计划》篇4:拥抱变化
  15. python-编码实现趋势外推法
  16. 【C++】---日期计算器
  17. 论文精度 —— 2017 CVPR《High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis》
  18. 小米手环硬件构成及原理图
  19. 如何解决word文档报错打不开呢?
  20. 取出汉字的拼音首字母

热门文章

  1. 利用Cytoscape进行生物相互作用网络可视化及拓扑分析
  2. matlab平行线的中线,cad怎么画两条平行线的中线
  3. 如何写项目方案--从资料准备到书写技巧
  4. 视频教程-全国计算机二级MS OFFICE考前冲刺课程-计算机等级考试
  5. 实验2014062701:opencv对图像的点操作
  6. 实习日记5:过滤器+批量删除+角色管理
  7. GAMS编写综合能源程序
  8. java publisher_Publisher/Subscriber(发布/订阅者)消息模式开发流程
  9. 【Segmentation】
  10. 百度地图api的实现