紫书——Repeating Decimals UVA - 202
题解:
该题目要求求出每个除数的循环小数,由于整除0也算有循环小数,那么每个除数都会有答案。
这道题的思路就是抽屉原理,由于除数只有3000这个范围,那么余数的范围最多只有0-2999,最差情况下一旦除了3000次后一定有循环的存在。这时候我们只要记录好每次余数出现的时间就可以求出有多少个循环小数。
注意:这道题是每个输出都要有空行,不是数据间之间才有空行,不然会PE(PE了好多次orz)
#include <bits/stdc++.h>
using namespace std;#define inf 0x3f3f3f3fint a,b;
int num[3010]; //保存计算结果
int out[3010]; //对应余数出现的时间 int main() {//freopen("in.txt","r",stdin);while(scanf("%d%d",&a,&b) == 2){memset(out,0,sizeof(out));//memset(num,0,sizeof(0));int pos = 1; //从1开始int yu; //每次除后的余数 int atmp = a; //方便之后输出a原来的大小 for(;;){yu = a%b;num[pos] = a/b;if(out[yu]) break; //找到相同的余数后就代表已经循环 out[yu] = pos;pos++;a = yu*10; }printf("%d/%d = %d.",atmp,b,num[1]);int cha = pos-out[yu]; //计算出重复元素的差值for(int i = 2; i <= pos-cha; i++) printf("%d",num[i]);printf("(");for(int i = pos-cha+1; i <= pos; i++){printf("%d",num[i]);if(i-pos+cha == 50){printf("...");break;}}printf(")\n");printf(" %d = number of digits in repeating cycle\n\n",cha);}return 0;
}
紫书——Repeating Decimals UVA - 202相关推荐
- 紫书例题6-5 UVa 12657 (链表
唉 这道题是省赛选拔的最后一场的原题啊 当时要是仔细翻翻紫书,就直接大一能去省赛了唉,可惜了 代码对着紫书抄的的 (写的正好 这里写代码片
- 紫书 习题 10-17 UVa 11105 (筛法)
类似于素数筛的思想去做,不然暴力会超时而且还要判重 #include<cstdio> #include<cstring> #include<vector> #def ...
- 紫书 习题 10-44 UVa 11246 ( 容斥原理)
把k的倍数的删去(k, 2k, 3k--),但是k^2不应该删去,因为k已经删去,所以不存在某个数乘上k之后为k^2 所以k^2可以留下,然后因为有k^2,所以k^3就是k^2的k倍,所以k^3要删去 ...
- 紫书 习题7-14 UVa 307(暴搜+剪枝)
这道题一开始我想的是在排序之后只在头和尾往中间靠近来找木块, 然后就WA, 事实证明这种方法是错误的. 然后参考了别人的博客.发现别人是直接暴搜, 但是加了很多剪枝, 所以不会超时. 我也想过这个做法 ...
- 紫书 习题 10-20 UVa 1648 (推公式)
设一次上去a层,一次下去b层,有x次上去,有(n-x)次下去 则ax - (n-x)b >= 1 x >= (nb+1) / (a+b) 如果可以整除, x = (nb+1) / (a+b ...
- 紫书 习题 10-7 UVa 10539(long long + 素数筛)
注意要开long long 如果int * int会炸 那么久改成long long * int #include<cstdio> #include<vector> #incl ...
- 紫书 例题8-10 UVa 714 (二分答案)
这道题让最大值最小, 显然是二分答案 当题目求的是最大值最小, 最小值最大, 这个时候就要想到二分答案 为什么可以二分答案呢, 因为这个时候解是单调性的, 如果简单粗暴一点 就全部枚举一遍, 验证答案 ...
- 紫书 习题8-14 UVa 1616(二分+小数化分数+精度)
参考了https://www.cnblogs.com/dwtfukgv/p/5645446.html (1)直接二分答案.说实话我没有想到, 一开始以为是贪心, 以某种策略能得到最优解. 但是想了很久 ...
- 紫书 习题 8-15 UVa 1617 (贪心)
先排序, 然后每个线段先放右端点, 然后往下放, 如果不能放就整体往左移动, 当不能往左移动的时候就ans++ 开始下一个整块.判断能不能向左移动要用一个变量储存每个已经放了的区间中线段与左端点距离的 ...
- 紫书 例题 10-14 UVa 12034(组合数+递推)
这道题有点类似动态规划,设答案为f(n) 第一个人有i个人,就有c(n,i)种可能 然后后面有f(n-i)种可能,所以相乘,然后枚举所有可能加起来就ok了. #include<cstdio> ...
最新文章
- 1041. 考试座位号(15)
- STL中的空间配置器
- npm安装教程 集成npm webpack vue-cli
- Yahoo Mail,慢功出细活〔转载〕
- matlab var std,Matlab var std cov 函数解析
- 多学一招总没错吧?MP通用枚举轻松实现存储显示相分离
- php什么情况下使用静态属性,oop-做php项目什么时候该使用静态属性呢
- 机器人当中的摩擦力(未完)
- Android项目运行junit测试类时出现错误Internal Error (classFileParser.cpp:3494)的解决办法...
- 谷歌发布 XS-Leaks 漏洞知识库
- SpringCloud(一)
- 第二章、Linux操作系统及常用命令
- Android的动画简单学习
- SQL注入漏洞解决心得
- Mac笔记本安装maven
- 射频识别(RFID)技术与ETC技术简介
- 苹果id可以彻底注销吗_如何注销苹果id账号
- 初学python数据结构-切片
- 转:[Server] 在 Windows 上安裝 PHP 5.3 開發環境
- Python 外星人入侵游戏(一):武装飞船(上)
热门文章
- Conflux DAO 社区技术委员会成立 助力生态繁荣发展
- 《剑指offer》-二叉树的下一个节点
- 单基因gsea_单基因突变+肿瘤突变负荷+免疫细胞浸润文章套路
- java将日期转化为周几_关于java中时间和周几转换的小小工具
- 2.6.2 QDate类与QDateEdit控件介绍(日期处理)
- 赏金猎人:德州堕胎法案 | 经济学人早报精选20210902
- API的理解和使用——全局命令
- 2021-3-18大学化学无机原理(3)热力学能与热力学第一定律
- react 控制台 Maximum call stack size exceeded 如何解决
- 按照python后没有菜单栏 知乎_在线按汉字偏旁部首查字