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 }
    代码
  • 相关阅读:
    sqlserver-一次updlock和withnolock和with check option 的报错原因分析
    类库文件引用web服务报错解决方法-在 ServiceModel 客户端配置部分中,找不到引用协定的默认终结点元素
    用timer自定义计划任务时间
    console 程序随系统启动及隐藏当前程序窗口
    爱积多合作农场正式上线试运营
    CSS-三列布局
    CSS-垂直居中
    form表单重置
    CSS3 选择器
    Tab选项卡
  • 原文地址:https://www.cnblogs.com/frank06/p/10339075.html
Copyright © 2011-2022 走看看