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 閱讀(1346) 評論(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]<<" ";
          }  回復  更多評論
            

          主站蜘蛛池模板: 木里| 横山县| 响水县| 宁陵县| 林口县| 吉木乃县| 奎屯市| 永定县| 思南县| 宜宾市| 房山区| 杭锦旗| 外汇| 廊坊市| 容城县| 东港市| 丰宁| 普兰店市| 藁城市| 边坝县| 诸暨市| 神木县| 垦利县| 东丽区| 清新县| 岢岚县| 漾濞| 武义县| 蓬溪县| 房山区| 永安市| 旺苍县| 临猗县| 莲花县| 攀枝花市| 五原县| 桦甸市| 侯马市| 花莲市| 陵水| 黄大仙区|