zoukankan      html  css  js  c++  java
  • 洛谷P1530 分数化小数 Fractions to Decimals

    题目描述

    写一个程序,输入一个形如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

    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

    思路是模拟除法竖式,当有余数与之前的相同时,之前余数作为被除数算出的商的位置直到算出这个余数的商的位置就是这个小数的循环节。最后不要忘记76个字符换一行,包括整数部分、括号和小数点。

     1 #include<iostream>
     2 using namespace std;
     3 string st;
     4 int n,d,t,ys[100001],f=999999999,s,tt;
     5 int main()
     6 {
     7     cin>>n>>d;
     8     t=n/d;
     9     while(1)
    10     {
    11         st=(char)(t%10+'0')+st;
    12         t/=10;
    13         if(!t)
    14             break;
    15     }
    16     st+='.';
    17     n%=d;
    18     while(1)
    19     {
    20         if(ys[n])
    21         {
    22             f=ys[n];
    23             break;
    24         }
    25         else
    26             ys[n]=st.length();
    27         n*=10,t=n/d;
    28         st+=t+'0';
    29         n%=d;
    30         if(!n)
    31             break;
    32     }
    33     if(f!=999999999)
    34         st+=')';
    35     for(int i=0;i<st.length();i++)
    36     {
    37         if(i==f&&!tt)
    38             i--,tt=1,cout<<'(';
    39         else
    40             cout<<st[i];
    41         s++;
    42         if(s%76==0)
    43             cout<<endl;
    44     }
    45     return 0;
    46 }
    代码
  • 相关阅读:
    Android 设置 grid 不滚动
    SpringMVC + myBatis + mySQL 全注解 事务配置
    Git学习日志
    linux 下安装maven
    Maven 搭建springMVC 报错 maven web.xml param element param-name is not allowed here
    Python 函数式编程 filter(),map() , reduce()......
    onpropertychange 实时监控input输入框事件实现
    php CI 框架 mysql 事务使用
    This function has none of DETERMINISTIC, NO SQL解决办法
    安装inotify-tools,用inotifywait命令监听文件或目录的访问信息
  • 原文地址:https://www.cnblogs.com/frank06/p/10339075.html
Copyright © 2011-2022 走看看