P1530 分数化小数 Fractions to Decimals

    • 103通过
    • 348提交
  • 题目提供者该用户不存在
  • 标签USACO
  • 难度普及/提高-

提交  讨论  题解

最新讨论

  • 暂时没有讨论

题目描述

写一个程序,输入一个形如N/D的分数(N是分子,D是分母),输出它的小数形式。 如果小数有循环节的话,把循环节放在一对圆括号中。

例如, 1/3 =0.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)
PROGRAM NAME fracdec

输入输出格式

输入格式:

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

输出格式:

按照上面规则计算出的小数表达式.如果结果长度大于76,每行输出76个字符.

输入输出样例

输入样例#1:

45 56
输出样例#1:

0.803(571428)

说明

翻译来自NOCOW

USACO 2.4

分析:看着和数学有关,其实是一道大模拟......细节非常多:

1.因为要76行一输出,所以要先用一个变量记录长度,小数点也要加上去.

2.如果能够除尽,直接输出答案即可.

3.对于整数部分的长度,不断除以10,直到等于0,每次除的时候累加长度.

4.如果除以10恰好等于0,那么长度+1.

然后就是小数部分的处理了,难点是循环节的处理,如果一个余数之前恰好出现过,而当前的除数正好是之前余数对应的除数,那么就出现循环节,这里用两个数组记录,一个记录上一个相同余数位置,一个记录除数.

最后输出的时候判断累加的长度是否为76,是则换行即可.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std;
int n,d,a[],check[],tot1 = ,tot,ans[],cur[],h[],integer[],remainder[],flag,l,r; int main()
{
scanf("%d%d",&n,&d);
if (n % d == )
{
printf("%d.0\n",n/d);
return ;
}
printf("%d.",n/d);
int temp = n / d;
while (temp)
{
tot1++;
temp /= ;
}
if (n / d == )
tot1++;
remainder[] = n % d;
while ()
{
tot++;
integer[tot] = remainder[tot - ] * / d;
remainder[tot] = remainder[tot - ] * % d;
if (remainder[tot] == )
break;
if (cur[remainder[tot]] > && h[cur[remainder[tot]]] == integer[tot])
{
l = cur[remainder[tot]];
r = tot - ;
break;
}
cur[remainder[tot]] = tot;
h[cur[remainder[tot]]] = integer[tot];
}
for (int i = ; i <= tot; i++)
{
if (i == l)
{
printf("(");
tot1++;
}
printf("%d",integer[i]);
tot1++;
if (i == r)
{
printf(")");
break;
}
if (tot1 % == )
printf("\n");
}
printf("\n"); return ;
}

洛谷P1530 分数化小数 Fractions to Decimals的更多相关文章

  1. Luogu P1530 分数化小数 Fractions to Decimals(模拟)

    P1530 分数化小数 Fractions to Decimals 题意 题目描述 写一个程序,输入一个形如\(N/D\)的分数(\(N\)是分子,\(D\)是分母),输出它的小数形式.如果小数有循环 ...

  2. YTU 1439: 2.4.5 Fractions to Decimals 分数化小数

    1439: 2.4.5 Fractions to Decimals 分数化小数 时间限制: 1 Sec  内存限制: 64 MB 提交: 194  解决: 13 题目描述 写一个程序,输入一个形如N/ ...

  3. [C++]2-5 分数化小数

    /* 分数化小数 输入正整数a,b,c,输出a/b的小数形式.精确到小数点后C位.a,b<=10^6,c<=10^6. 输入包含多组数据,结束标记为a=b=c=0 样例输入: 1 6 4 ...

  4. 分数化小数(decimal)

    分数化小数 ①我的程序 #include<iostream>using namespace std;int main(void){ int a,b,c,kase=0; while(scan ...

  5. 洛谷 2921 记忆化搜索 tarjan 基环外向树

    洛谷 2921 记忆化搜索 tarjan 传送门 (https://www.luogu.org/problem/show?pid=2921) 做这题的经历有点玄学,,起因是某个random题的同学突然 ...

  6. 【USACO 2.4.5】分数化小数

    [描述] 写一个程序,输入一个形如N/D的分数(N是分子,D是分母),输出它的小数形式. 如果小数有循环节的话,把循环节放在一对圆括号中. 例如, 1/3 =0.33333333 写成0.(3), 4 ...

  7. 【u237】分数化小数

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 写一个程序,输入一个形如N/D的分数(N是分子,D是分母),输出它的小数形式.如果小数有循环节的话,把 ...

  8. 一个洛谷Material化的Stylish美化主题

    Luogu Argon Design 新主题 Luogu Argon Design 目前已经取代了 Luogu Material,但这并不代表 Luogu Material 会停止更新,在 Luogu ...

  9. 分数规划模板(洛谷P4377 [USACO18OPEN]Talent Show)(分数规划,二分答案,背包)

    分数规划是这样一个东西: 给定若干元素,每个元素有两个属性值\(a_i,b_i\),在满足题目要求的某些限制下选择若干元素并求出\(\frac{\sum a}{\sum b}\)的最大值. 如果没有限 ...

随机推荐

  1. perl语言书籍教程推荐

    互动出版网计算机频道.为您推荐关于perl语言的书籍教程.包括perl push.perl chomp以及perl python等perl语言内容. perl语言书籍一.<Perl语言编程 第四 ...

  2. 75. Sort Colors

    Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...

  3. 初步理解MVC

    一.Asp.net WebForms 与Asp.net MVC 概念 Asp.net是创建WEB应用的框架,MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系. 我们可将原来的Asp.net ...

  4. PLSQL_基础系列12_替换函数用法REPLACE / TRANSLATE / REGEXP_REPLACE

    20150806 Created By BaoXinjian

  5. 张恭庆编《泛函分析讲义》第二章第4节 $Hahn$-$Banach$ 定理习题解答

    1.次线性泛函的性质 设 $p$ 是实线性空间 $\scrX$ 上的次线性泛函, 求证: (1)$p(0)=0$; (2)$p(-x)\geq -p(x)$; (3)任意给定 $x_0\in \scr ...

  6. 转 -android:程序无响应,你该如何定位问题?

    如果MainThread长时间无响应,系统会提示“XXX无响应”,然后用户会关闭.那么,如何定位问题呢?无响应并不像Crash,它抓取不到异常日志,通常我们需要调试,才能定位问题.如何调试呢? 1.在 ...

  7. log4Net使用 z

    http://logging.apache.org/log4net/1.Log4net主要结构分析  1.1 Logger:是应用程序与Log4net进行交互的主要模块,它也是log4net生成log ...

  8. ubuntu 命令学习大全

    http://wiki.ubuntu.org.cn/UbuntuSkills#.E6.98.BE.E7.A4.BA.E5.BD.93.E5.89.8D.E7.A1.AC.E4.BB.B6.E4.BF. ...

  9. Oracle迁移MySQL笔记

    1,--在oracle代表注释 ,mysql/* */,# 2,|| oracle里面是表示连接符号,比如 A||B 那么就是AB 3,databaseLink创建好之后,比如名字为db_link_b ...

  10. css选择器权值

    有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?我们来看一下面的代码: p{color:red;} .first{color:green;} <p clas ...