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]<<" ";
          }  回復  更多評論
            

          主站蜘蛛池模板: 锦屏县| 双牌县| 静安区| 赤城县| 南宁市| 苏尼特左旗| 新晃| 东丰县| 文登市| 平邑县| 邻水| 南丹县| 仲巴县| 眉山市| 娄底市| 德安县| 永康市| 北辰区| 略阳县| 仁化县| 义马市| 秦皇岛市| 大丰市| 阜康市| 枝江市| 晋中市| 崇左市| 磐安县| 得荣县| 垣曲县| 长葛市| 鲁甸县| 东辽县| 吉安市| 元谋县| 勐海县| 乃东县| 民勤县| 秦安县| 德昌县| 宜城市|