博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YTU 1439: 2.4.5 Fractions to Decimals 分数化小数
阅读量:4630 次
发布时间:2019-06-09

本文共 1188 字,大约阅读时间需要 3 分钟。

1439: 2.4.5 Fractions to Decimals 分数化小数

时间限制: 1 Sec  
内存限制: 64 MB
提交: 194  
解决: 13

题目描述

写一个程序,输入一个形如N/D的分数(N是分子,D是分母),输出它的小数形式。 如果小数有循环节的话,把循环节放在一对圆括号中。例如, 1/3 = .33333333 写成0.(3) 41/333 = 0.123123123... 写成0.(123) 用xxx.0 成表示整数 典型的转化例子: 1/3 = 0.(3) 22/5 = 4.4 1/7 = 0.(142857) 2/2 = 1.0 3/8 = 0.375 45/56 = 0.803(571428)

输入

单独的一行包括被空格分开的 N和D, 1 <= N,D <= 100000。

输出

小数的表示方法上面说的很明白了,如果输出的长度超过76个字符,每行输出76个。

样例输入

45 56

样例输出

0.803(571428)

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

#include 
#include
#define N 100010int rm[N],c;char buf[N],dev[N];int main(){ int m,n,i; scanf("%d%d",&m,&n); sprintf(buf,"%d.",m/n); memset(rm, -1, sizeof(rm)); m = m % n; dev[0] ='0'; for(i= 0;; i++) { if(m==0) { sprintf(buf + strlen(buf),"%s", dev); break; } if(rm[m]!= -1) { sprintf(buf + strlen(buf), "%.*s(%s)", rm[m], dev, dev + rm[m]); break; } rm[m] = i; m *= 10; dev[c++] = m / n + '0'; m = m % n; } for(i = 0; i<(int)strlen(buf); i+=76)printf("%.76s\n", buf + i); return 0;}

转载于:https://www.cnblogs.com/im0qianqian/p/5989422.html

你可能感兴趣的文章
类于对象
查看>>
灵活性是原则性基础上的灵活
查看>>
python 添加进度条
查看>>
恢复Opera11.50地址栏的下拉列表按钮
查看>>
EBS上用过的一些接口表整理信息
查看>>
ldconfig
查看>>
操作系统简介
查看>>
查看Linux系统中某目录的大小
查看>>
Git远程仓库地址变更
查看>>
PAT_B_1027 打印沙漏
查看>>
POJ-1185 炮兵阵地 动态规划+状态压缩
查看>>
NYOJ 366 D的小L
查看>>
PYTHON 写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者...
查看>>
Docker 初识
查看>>
【12.16】VC++调用Word OLE进行自动化生成报表
查看>>
用Maven创建第一个web项目
查看>>
php中的抽象类(abstract class)和接口(interface)
查看>>
linux安装ActiveMQ
查看>>
面向对象与软件工程---团队作业1
查看>>
认识一下Kotlin语言,Android平台的Swift
查看>>