emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

          Problem Statement

              

          In the factorial number system the value of the first digit (from the right) is 1!, the value of the second digit is 2!, ..., and the value of the n-th digit is n!. This means that any decimal number d can be written in this system as: anan-1...a2a1, where

          d = an * n! + an-1 * (n-1)! + ... + a2 * 2! + a1 * 1! and 0 <= ai <= i for all i.

          Given an int num in decimal, return its representation in the factorial number system.

          Definition

              
          Class: FactorialSystem
          Method: convert
          Parameters: int
          Returns: int
          Method signature: int convert(int num)
          (be sure your method is public)
              

          Notes

          - n! = 1 * 2 * ... * n

          Constraints

          - num will be between 1 and 3628799 (10!-1), inclusive.

          Examples

          0)
              
          1
          Returns: 1
          1)
              
          24
          Returns: 1000
          24 = 4!
          2)
              
          153
          Returns: 11111
          153 = 1! + 2! + 3! + 4! + 5!.
          3)
              
          133
          Returns: 10201
          4)
              
          3628799
          Returns: 987654321
          Largest possible input.

          This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved.

          posted on 2005-12-23 10:26 emu 閱讀(1352) 評論(4)  編輯  收藏 所屬分類: google編程大賽模擬題及入圍賽真題

          評論

          # re: FactorialSystem (code jam china round2 300分真題) 2006-07-28 08:29 peng he
          #include<stdio.h>
          void main()
          {int i, a;
          scanf("%d",&a);
          for(i=2;a/i!=0;i++)
          {printf("%d",a%i);
          a=a/i;



          }


          }  回復  更多評論
            

          # re: FactorialSystem (code jam china round2 300分真題) 2007-06-09 15:39 匿名
          @peng he
          你這編的什么東西呀

          題目意思理解清楚沒有呀  回復  更多評論
            

          # re: FactorialSystem (code jam china round2 300分真題)[未登錄] 2007-09-08 22:44 a
          package factorial;
          import java.util.LinkedList;
          public class Factorial {

          public static void main(String[] args) {
          StringBuffer sb=new StringBuffer();
          LinkedList<Integer> al=new LinkedList<Integer>();
          int m=445;
          int z=1;
          int fZ=z;
          al.add(fZ);
          while(m/fZ>0)
          {
          z++;
          al.addLast(al.getLast()*z);
          fZ=al.getLast();

          }
          int n=z-1;
          for(int i=n;i>=1;i--)
          {

          int temp=m/al.get(i-1);
          m-=temp*al.get(i-1);
          sb.append(temp);
          }
          System.out.println(sb.toString());

          }

          }
            回復  更多評論
            

          # re: FactorialSystem (code jam china round2 300分真題) 2008-10-12 21:45 zgqchina
          #include<iostream>
          using namespace std;

          long factrial(int n) //求階乘,n>0
          {
          if(n==1) return 1;
          else
          return n*factrial(n-1);
          }

          int k=0,a[9]; //全局變量 K用來計數,數組用來存放數列

          void convert(double num) //轉換成數列
          {
          int n=9;
          while((num>0)&&(n>=1))
          {
          int m=factrial(n);
          if(num<m)
          a[k]=0;
          else
          {
          for(int p=n;p>=1;p--)
          if(num>=p*m)
          {
          a[k]=p;
          break;
          }
          num=num-p*m;
          }
          n--;
          k++;
          }
          }

          void main()
          {
          cout<<"please input a number(num will be between 1 and 3628799) :"<<endl;
          double temp;
          cin>>temp;
          cout<<"now the result is :"<<endl;
          convert(temp);
          int i=0;
          while(a[i]==0) i++;
          for(i;i<9;i++)
          cout<<a[i]<<" ";
          }  回復  更多評論
            

          主站蜘蛛池模板: 印江| 新沂市| 南和县| 张北县| 昭通市| 淮滨县| 杭锦后旗| 永定县| 黄大仙区| 柘荣县| 水城县| 马尔康县| 东乌珠穆沁旗| 保山市| 镇康县| 深水埗区| 潞城市| 瓦房店市| 东乌珠穆沁旗| 来安县| 慈溪市| 达拉特旗| 甘德县| 东源县| 临清市| 拜泉县| 明光市| 陕西省| 东山县| 台南市| 新建县| 和硕县| 利辛县| 格尔木市| 遂川县| 犍为县| 玛曲县| 呼和浩特市| 吉隆县| 会宁县| 陵川县|