zoukankan      html  css  js  c++  java
  • codeforce

    A. Numbers
    time limit per test
    1 second
    memory limit per test
    64 megabytes
    input
    standard input
    output
    standard output

    Little Petya likes numbers a lot. He found that number 123 in base 16 consists of two digits: the first is 7 and the second is 11. So the sum of digits of 123 in base 16 is equal to 18.

    Now he wonders what is an average value of sum of digits of the number A written in all bases from 2 to A - 1.

    Note that all computations should be done in base 10. You should find the result as an irreducible fraction, written in base 10.

    Input

    Input contains one integer number A (3 ≤ A ≤ 1000).

    Output

    Output should contain required average value in format «X/Y», where X is the numerator and Y is the denominator.

    Sample test(s)
    input
    5
    
    output
    7/3
    
    input
    3
    
    output
    2/1
    
    Note

    In the first sample number 5 written in all bases from 2 to 4 looks so: 101, 12, 11. Sums of digits are 2, 3 and 2, respectively.

     

    #include "stdio.h"
    #include "string.h"
    #include "stdlib.h"
    
    
    int n;
    int ntable[1000] ;
    int su(int d,int n)
    {int i=0,sum=0;
     int r[1000];memset(r,0,100);
     int tmp;
     int l;
         while(d!=0)
          {tmp=d%n;
           r[i]=ntable[tmp];
           i++;
           d/=n;
                    }
         l=i;
         for(i=0;i<l/2;i++)
          {tmp=r[i];
           r[i]=r[l-i-1];
           r[l-i-1]=tmp;
            }
    for(i=0;i<l;i++)
    sum+=r[i];
    return sum;
    }
    
    int gcd(int a,int b){
    int r;
    while(b>0){
    r=a%b;
    a=b;
    b=r;
    }
    return a;
    }
    
    int main(  )
    {
      int a,i=0,ans,fm=0;
      for(i=0;i<1000;i++)
      {
          *(ntable+i)=i;
      }
    while(~ scanf( "%d",&a ))
      {
          fm=a-1;ans=0;
       for(i=2;i<=fm;i++)
       {
           ans+=su(a,i) ;
        }
    printf( "%d/%d
    ",ans/gcd(ans,fm-1),(fm-1)/gcd(ans,fm-1) );
      }
      return 0;
    }
    


  • 相关阅读:
    对silverlight布局进行控制,使其居中显示,适用于不同的分辨率
    图(邻接表链表和边表)
    LINUX下GCC编译sqrt函数问题
    图(邻接矩阵)
    表达式树
    赫夫曼树
    N的阶乘中末尾有几个0
    走迷宫
    HDU1863畅通工程(最小生成树 Kruskal)
    KMP算法
  • 原文地址:https://www.cnblogs.com/slankka/p/9158629.html
Copyright © 2011-2022 走看看