• UVa 202


    给你两个数,问你他们相除是多少,有无限循环就把循环体括号括起来

    模拟除法运算
    把每一次的被除数记下,当有被除数相同时第一个循环就在他们之间。
    要注意50个数之后要省略号...
    每一次输出之后多打一个回车...

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 int a,b;
     5 int flag[30000];//记录该被除数出现的位置 
     6 int ans[10000],num,cnt;
     7 void fuc()
     8 {
     9     memset(flag,0,sizeof(flag)); num=0;
    10     while(a>0)
    11     {
    12         if(flag[a]>0) break;
    13         flag[a]=num;
    14         ans[num]=a/b;
    15         a%=b;
    16         a*=10; num++;
    17     }
    18 }
    19 int main()
    20 {
    21     while(cin>>a>>b)
    22     {   
    23         printf("%d/%d = ",a,b);
    24         fuc();
    25         printf("%d.",ans[0]);//整数位 
    26         
    27         if(a>0)
    28         {
    29             for(int i=1;i<flag[a];i++) cout<<ans[i]; //循环体前 
    30             cout<<'(';
    31             for(int i=flag[a];i<num&&i<=50;i++)
    32             {
    33                 cout<<ans[i];
    34             } 
    35             if(num-flag[a]>=50) cout<<"...";
    36             cout<<')'<<endl;
    37             printf("   %d = number of digits in repeating cycle
    
    ",num-flag[a]);
    38         }
    39         else
    40         {
    41             for(int i=1;i<num;i++)    cout<<ans[i];
    42             cout<<"(0)
    ";
    43             printf("   1 = number of digits in repeating cycle
    
    ");
    44         } 
    45         
    46     }
    47 } 
    我自倾杯,君且随意
  • 相关阅读:
    日积月累--小技巧之四
    深入理解object C中复制对象的用法(二)
    状压dp-poj-1170-Shopping Offers
    linux printk函数学习
    I.MX6 WIFI wireless_tools 移植
    I.MX6 AW-NB177NF WIFI 驱动移植问题
    VS 一些配置设置
    I.MX6 boot from Micro SD
    Android studio 构建太慢
    Android gif 录屏
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/5304435.html
Copyright © 2020-2023  润新知