【高精度】高精度分数[c++]
【高精度】高精度分数
时间限制: 1 Sec 内存限制: 64 MB
题目描述
“人无远虑,必有近忧”是修罗王一直以来恪守的信条,为了以防万一,他在很久以前就将《魔法宝典》的全部信息编码为一个巨大无比的自然数,并在这个数前加一个0和小数点,使它变成一个分数。然后他在戒指上刻了一个记号,使记号的两端长度比等于这个分数。这样,虽然他在入狱时手上只带了一个戒指,但只要测量出戒指上记号的比值M/N,他就可以还原《魔法宝典》的全部信息。
现在的问题是:已知分数M/N,试计算M/N的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起止位置(小数位的序号)。输入
只有一行,即M/N,其中0 < M < N < 100。输出
输出M/N的值,如为无限循环小数,则输出第一循环节及起止位置。样例输入
17/97样例输出
17/97=0.175257731958762886597938144329896907216494845360824742268041237113402061855670103092783505154639
from 1 to 96提示
【输入样例2】
1/2【输出样例2】
1/2=0.5
可以将商存放在一维数组中,进行除法运算,模拟人的手工操作,即每次求出商的一位后,将余数乘以10,再计算商的下一位。若某次余数为0,则为有限不循环小数。若某次计算后的余数与前面某个余数相同时,则M / N是无限循环小数。
代码[c++]
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
const int maxn = 105;
int main()
{
int m,n;
while(scanf("%d/%d",&m,&n)!=EOF)
{
int modnum[100] = {0};//记录每个余数出现的次数(余数的范围0~98)
printf("%d/%d=0.",m,n);
int div[maxn] = {0};
int k=-1;
int judge=1;
modnum[m]=1;//将被除数也算作余数
for(int i=1; i<105&&k==-1; i++)
{
m*=10;
div[i]=m/n;
m=m%n;
if(modnum[m])//若某次计算后的余数与前面某个余数相同时,则M/N是无限循环小数
{
k=i+1;
judge=0;
break;
}
modnum[m]=i+1;
if(modnum[0])//若某次余数为0,则为有限不循环小数
{
k=i+1;
break;
}
}
for(int i=1; i<k; i++)
printf("%d",div[i]);
printf("\n");
if(!judge)//输出循环节
printf("from %d to %d\n",modnum[m],k-1);
}
return 0;
}
【高精度】高精度分数[c++]的更多相关文章
- 【推导】【贪心】【高精度】Gym - 101194E - Bet
题意:每个队伍有个赔率pi,如果你往他身上押x元,它赢了,那么你得到x+(1/pi)x元,否则你一分都得不到.问你最多选几支队伍去押,使得存在一种押的方案,不论你押的那几支队伍谁赢,你都能赚得到钱. ...
- 【高精度练习+卡特兰数】【Uva1133】Buy the Ticket
Buy the Ticket Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- 高精度运算略解 在struct中重载运算符
高精度 高精度,即高精度算法,属于处理大数字的数学计算方法.在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字. 重载运算符 运算符重载,就是对已有的运算符重新进行 ...
- 算法模板 - C++ 高精度运算
C++算法板子 高精度 高精度推荐用python来写,python有大整数,这里写的是关于C++的高精度运算模板 1.高精 * 低精 #include <iostream> #includ ...
- ACM基础板子
新生赛以后就正式成为一名acmer啦 ~虽然没有打过比赛呜呜呜 要好好学算法,拿一个牌牌嘛~ 这里就记录算法学习情况,也怕自己偷懒,学一个就记录,看看长时间拖更就是在摸鱼,摸鱼和鸽子都是本质 ,加油! ...
- 二模 (12) day1
第一题: 题目大意: 求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数.N,M<=5000. 解题过程: 1.看到N,M的范围就明确肯定不会是dp,因为起码 ...
- C#装箱,拆箱和强制转换(转)
出处:https://www.cnblogs.com/fengjiulin110120/p/6605739.html 关系: 强制转换就包含有装箱拆箱操作,装箱就是把值类型转换成引用类型,反之就是拆箱 ...
- AcWing算法基础1.4
高精度 高精度加法,高精度减法,高精度乘低精度,高精度除以低精度,大概平时用的最多的就是这四个,模板有两种(因为我现在不太会用vector,就用数组也写了个,23333) 高精度运算和人工手算差不多, ...
- 秘制CSP模板
不定期更细中...... 声明1:由于js的问题导致VIEW CODE按钮只能点"I"附近才能展开代码 声明2:为了排版的美观,所有的解释以及需要留意的地方我都放在代码中了 声明3 ...
随机推荐
- RequireJS跨域加载html模版后被转成JS问题分析及解决
问题描述 RequireJS跨域加载HTML模版失败,例如: 在a.com域名下请求CDN域名下的模版,text.js插件会把html文件转成html.js文件去加载,由于并没有生成html.js文件 ...
- python全栈开发day64-模板-变量和(.)的使用,filters和自定义filter
一.上周内容回顾 day64 内容回顾: 1. 所有的django命令 1. 安装 pip install django==1.11.14 pip install -i 源 django==1.11. ...
- scrapy 基础使用以及错误方案
原先用的是selenium(后面有时间再写),这是第一次使用scrapy这个爬虫框架,所以记录一下这个心路历程,制作简单的爬虫其实不难,你需要的一般数据都可以爬取到. 下面是我的目录,除了main.p ...
- Fiddler教程--简介
1.开发环境host配置 自己修改系统的host来回挺麻烦的 2.前后的接口调试 3.线上bugfix 4.性能分析和优化 5.等等... 工作原理 一个代理服务器 地址改为 127.0.0.1:88 ...
- 咸鱼入门到放弃1--JDBC
JDBC参考微博https://www.cnblogs.com/surfcater/p/10224502.html 主要内容 1.JDBC相关概念 2.JDBC常用接口 driver connecti ...
- maven私服nexus(三)
将项目中的第三方jar包上传至maven私服中 上传jar包到maven私服 在你使用的maven配置文件settings中加上如下信息 代表你访问的账号密码 <servers> < ...
- Cyclic Nacklace hdu3746 kmp 最小循环节
题意:给出一段字符串 求最少在最右边补上多少个字符使得形成循环串(单个字符不是循环串) 自己乱搞居然搞出来了... 想法是: 如果nex[len]为0 那么答案显然是补len 否则 答案为循环 ...
- 009 pandas的Series
一:创建 1.通过Numpy数组创建 2.属性查看 3.一维数组创建(与numpy的创建一样) 4.通过字典创建 二:应用Numpy数组运算 1.获取值 numpy的数组运算,在Series中都被保留 ...
- tensorflow基础架构 - 处理结构+创建一个线性回归模型+session+Variable+Placeholder
以下仅为自己的整理记录,绝大部分参考来源:莫烦Python,建议去看原博客 一.处理结构 因为TensorFlow是采用数据流图(data flow graphs)来计算, 所以首先我们得创建一个数据 ...
- Python 小程序之 恋爱表情包爬取
虽然恋爱跟我一毛钱关系没有,,但是我还是想爬它 实验爬取网址:http://qq.yh31.com/zjbq/1491124.html # -*- coding: utf-8 -*- # @Time ...