zoukankan      html  css  js  c++  java
  • USACO 2.4.5 Fractions to Decimals 题解

    【算法】模拟  【难度】★☆☆☆☆


    这道题不难,关键是长除法。
    手动模拟一下长除法就会发现,小数部分循环的标志是余数的重复出现。
    所以记录余数就可以了。注意一下整除的特殊情况就可以了,我因为这个WA了一次。
    【收获】要注意特判 

    View Code
     1 /*
    2 ID: wsc5001
    3 LANG: C
    4 TASK: fracdec
    5 */
    6 #include <stdio.h>
    7 #include <stdlib.h>
    8 int n,d;
    9 int checko[100010];
    10 int ans[100000];
    11 int main()
    12 {
    13 freopen("fracdec.in","r",stdin);
    14 freopen("fracdec.out","w",stdout);
    15 int i,j,k,e;
    16 int cha,mu;
    17 int sve=0,uasdf;
    18 int ct=0;
    19 scanf("%d%d",&n,&d);
    20
    21 for (i=0;i<100010;i++) checko[i]=-2;
    22
    23 e=n/d;k=0;
    24 while (e>0)
    25 {k++;e=e/10;}
    26 if (n/d==0) k=1;
    27 printf("%d.",n/d);ct+=k+1;if (ct==76){printf("\n");ct=0;}
    28
    29 mu=n%d*10;
    30 if (mu==0) {printf("0");return 0;}
    31 checko[mu/10]=0;
    32 i=0;
    33 while (1)
    34 {
    35 if (cha==0) {sve=-999999;break;}
    36 ans[i]=mu/d;
    37 cha=mu%d;
    38 if (checko[cha]==-2)
    39 {
    40 checko[cha]=i+1;
    41 mu=cha*10;
    42 i++;
    43 }
    44 else
    45 {i++;sve=checko[cha];break;}
    46 }
    47 mu=cha*10;
    48 ans[i]=mu/d;
    49 uasdf=i;
    50
    51 if (sve==-999999)
    52 {
    53 for (i=0;i<uasdf;i++)
    54 {printf("%d",ans[i]);ct++;if (ct==76){printf("\n");ct=0;}}
    55 }
    56 else
    57 {
    58 for (i=0;i<sve;i++)
    59 {printf("%d",ans[i]);ct++;if (ct==76){printf("\n");ct=0;}}
    60 if (uasdf>sve)
    61 {
    62 printf("(");ct++;if (ct==76){printf("\n");ct=0;}
    63 for (i=sve;i<uasdf;i++)
    64 {printf("%d",ans[i]);ct++;if (ct==76){printf("\n");ct=0;}}
    65 printf(")");ct++;if (ct==76){printf("\n");ct=0;}
    66 }
    67 }
    68 printf("\n");
    69
    70 //system("pause");
    71 fclose(stdin);
    72 fclose(stdout);
    73 }



  • 相关阅读:
    Android_EditText
    JAVA_Gson_example
    JAVA_Gson
    JAVA_eclipse 保留Java文件时自动格式化代码和优化Import
    JAVA_JSON_example
    JAVA_JSON
    JAVA_HttpClientUtils
    Android_Gallery
    JAVA_JDBC
    day05 Pyhton学习
  • 原文地址:https://www.cnblogs.com/loveidea/p/2416935.html
Copyright © 2011-2022 走看看