uva 202(Repeating Decimals UVA - 202)
题目大意
计算循环小数的位数,并且按照格式输出
怎么做
一句话攻略算法核心在于a=a%b*10,用第一个数组记录被除数然后用第二个数组来记录a/b的位数。然后用第三个数组记录每一个被除数出现的位置好去寻找循环节的位置。
我的代码(算法还是借鉴)
#include <iostream>
#include <cstring>
using namespace std;
int ar[300000];
int re[300000];
int lc[300000];
int main()
{
int a,b;
while(cin>>a>>b)
{
int a1=a;int b1=b;
int now=1;int ck;
ck=a/b;
a=a%b*10;
memset(re,0,sizeof(re));
while(re[a]==0)
{
re[a]=1;
lc[a]=now;//这个地方真的非常非常的厉害,第一遍看都没有看懂,实际上这有点预处理记录的感觉
ar[now]=a/b;
now++;
a=a%b*10;
}
if(ck<0)
printf("%d/%d = 0.",a1,b1);
else
printf("%d/%d = %d.",a1,b1,ck);
if(now-lc[a]==0)
{
for(int i=1;i<lc[a];i++)
cout<<ar[i];
cout<<"(0)\n";
}
else
{
for(int i=1;i<lc[a];i++)
cout<<ar[i];
cout<<"(";
if(now-lc[a]<50)
for(int i=lc[a];i<now;i++)
cout<<ar[i];
else
{
for(int i=lc[a];i<lc[a]+50;i++)
cout<<ar[i];
cout<<"...";
}
cout<<")\n";
cout<<" "<<now-lc[a]<<" = number of digits in repeating cycle\n\n";
}
}
return 0;
}
uva 202(Repeating Decimals UVA - 202)的更多相关文章
- UVa 202 Repeating Decimals(抽屉原理)
Repeating Decimals 紫书第3章,这哪是模拟啊,这是数论题啊 [题目链接]Repeating Decimals [题目类型]抽屉原理 &题解: n除以m的余数只能是0~m-1, ...
- UVa 202 - Repeating Decimals
给你两个数,问你他们相除是多少,有无限循环就把循环体括号括起来 模拟除法运算 把每一次的被除数记下,当有被除数相同时第一个循环就在他们之间. 要注意50个数之后要省略号...每一次输出之后多打一个回车 ...
- Repeating Decimals UVA - 202
The / repeats indefinitely with no intervening digits. In fact, the decimal expansion of every ratio ...
- UVa 202 Repeating Decimals【模拟】
题意:输入整数a和b,输出a/b的循环小数以及循环节的长度 学习的这一篇 http://blog.csdn.net/mobius_strip/article/details/39870555 因为n% ...
- UVa 202 Repeating Decimals 题解
The decimal expansion of the fraction 1/33 is 0.03, where the 03 is used to indicate that the cycle ...
- Repeating Decimals UVA - 202---求循环部分
原题链接:https://vjudge.net/problem/UVA-202 题意:求一个数除以一个数商,如果有重复的数字(循环小数),输出,如果没有,输出前50位. 题解:这个题一开始考虑的是一个 ...
- 【习题 3-8 UVA - 202】Repeating Decimals
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 余数出现循环节. 就代表出现了循环小数. [代码] #include <bits/stdc++.h> using nam ...
- UVa 10192 - Vacation & UVa 10066 The Twin Towers ( LCS 最长公共子串)
链接:UVa 10192 题意:给定两个字符串.求最长公共子串的长度 思路:这个是最长公共子串的直接应用 #include<stdio.h> #include<string.h> ...
- UVA 11646 - Athletics Track || UVA 11817 - Tunnelling the Earth 几何
题目大意: 两题几何水题. 1.UVA 11646 - Athletics Track 如图,体育场的跑道一圈400米,其中弯道是两段半径相同的圆弧,已知矩形的长宽比例为a:b,求长和宽的具体数值. ...
随机推荐
- jquery 推断checkbox 是否选中
这是一个蛋疼的节奏.曾经写的代码如今失效了. jquery 推断checkbox 是否被选中,刚開始我是这样写的,并且没问题 $("#ziduana").attr("ch ...
- protected (C# Reference)
https://msdn.microsoft.com/en-us/library/bcd5672a.aspx The protected keyword is a member access modi ...
- YTU 2706: 编写一个函数求最大的n值
2706: 编写一个函数求最大的n 值. 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 132 题目描述 编写一个函数求满足以下条件的最大的n.:12+22+32+-+ ...
- Secure CRT中解决vim高亮设置的方法
此文主要是解决vim编程中高亮显示的.原因是: 1.默认情况下,SecureCRT是有自己的终端显示颜色.这样在我们编程中不利于阅读内容. 2.我们必须到Linux系统中进行改进才能真正解决这样的问题 ...
- vscode----vue中HTML代码tab键自动补全
1.在vscode中插件下载并重新加载HTML Snippets 2.settings.json中配置files.associations对象. 找到setting.json文件:文件 --> ...
- $P5240 Derivation$
神仙题. 第一场月赛的题目我到第二场月赛完了才写[由此可见我是真的菜 题目就是个大模拟加乘显然,幂的话需要将原函数.导函数的函数值用扩展欧拉定理展开 \(log\) 层.时间复杂度 \(O(T |S| ...
- [转]linux之ps命令
转自:http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html Linux中的ps命令是Process Status的缩写.ps命令用来 ...
- [转]Linux finger命令
转自:http://os.51cto.com/art/201003/186354.htm Linux finger命令是系统管理员的必备命令之一,他可以清楚的告诉管理员有多少用户在同时使用他所管理的L ...
- Laravel 5.4.36 session 生效问题
在测试过程中发现 如果方法有echo 等函数输出到PHP的输出缓存中 存在 sessionID 不会放到http的请求头中 下次请求也就拿不到sessionid问题 问题的原因 代码位置:publ ...
- 最容易理解的CSS的position教程——十步图解CSS的position
CSS的positon,我想做为一个Web制作者来说都有碰到过,但至于对其是否真正的了解呢?那我就不也说了,至少我自己并不非常的了解其内核的运行.今天在Learn CSS Positioning in ...