• HDU


    上题目:

    A simple problem

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 2918    Accepted Submission(s): 1041


    Problem Description
    Zty很痴迷数学问题.。一天,yifenfei出了个数学题想难倒他,让他回答1 / n。但Zty却回答不了^_^. 请大家编程帮助他.
     
    Input
    第一行整数T,表示测试组数。后面T行,每行一个整数 n (1<=|n|<=10^5).
     
    Output
    输出1/n. (是循环小数的,只输出第一个循环节).
     
    Sample Input
    4
    2
    3
    7
    168
     
    Sample Output
    0.5
    0.3
    0.142857
    0.005952380
     
      中文题意不解释,突然想起小数循环节的问题→_→,找了一条来做做,结果还真的有点问题。首先是题目,1/168=0.005952380,如果正式找循环节为什么不是0595238,但在网上看到其他人说如果真的是0595238的话就得不到1/168了。
      详细做法看代码,其中f数组是用来保存哪一个余数已经出现过一边,因为同一个余数如果再出现一遍那就说明接下来又得在循环一次了,所以当判断到余数再出现的时候就跳出循环。当前在进入循环之前必须先将f[1]=1,因为可以将起始数当作是最开始的余数。然后每一次余数都要先扩大10倍(就是模拟笔算的过程,被除数不够大就要在后面补零),然后再进行运算。
     
    上代码:
     
     1 #include <cstdio>
     2 #include <cstring>
     3 #define MAX 100002
     4 using namespace std;
     5 
     6 bool f[MAX];
     7 
     8 int main()
     9 {
    10     int t,n;
    11     //freopen("data.txt","r",stdin);
    12     scanf("%d",&t);
    13     while(t--){
    14         scanf("%d",&n);
    15         if(n<0){
    16             printf("-");
    17             n=-n;
    18         }
    19         if(n==1){
    20             printf("1
    ");
    21             continue;
    22         }
    23         printf("0.");
    24         memset(f,0,sizeof(f));
    25         int m;
    26         m=1;
    27         f[m]=1;
    28         while(m){
    29             m=m*10;
    30             printf("%d",m/n);
    31             m=m%n;
    32             if(f[m]) break;
    33             f[m]=1;
    34         }
    35         printf("
    ");
    36     }
    37     return 0;
    38 }
    2522
     
     
     
  • 相关阅读:
    Windows更改默认RDP端口
    npm
    virtbuilder、oz
    brctl 详细使用
    Linux 精心设计的操作
    Oracle 11.2.0.1.0 CRS4639: Could not contact Oracle High Availability Services
    Oracle 11g 数据库启动时实例恢复的背后
    RHEL Debian Repository Configuration
    C#编码规范2
    .net二维码图片生成,并在中间添加LOGO,附base64图片下载功能
  • 原文地址:https://www.cnblogs.com/sineatos/p/3651037.html
Copyright © 2020-2023  润新知