emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評(píng)論 :: 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 閱讀(1350) 評(píng)論(4)  編輯  收藏 所屬分類: google編程大賽模擬題及入圍賽真題

          評(píng)論

          # 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;



          }


          }  回復(fù)  更多評(píng)論
            

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

          題目意思理解清楚沒有呀  回復(fù)  更多評(píng)論
            

          # 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());

          }

          }
            回復(fù)  更多評(píng)論
            

          # 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用來計(jì)數(shù),數(shù)組用來存放數(shù)列

          void convert(double num) //轉(zhuǎn)換成數(shù)列
          {
          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]<<" ";
          }  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 密山市| 株洲县| 吐鲁番市| 盈江县| 河间市| 雷州市| 右玉县| 南华县| 连山| 嫩江县| 枣庄市| 富民县| 佛学| 库尔勒市| 会东县| 九龙县| 水城县| 慈利县| 綦江县| 江津市| 郎溪县| 通州区| 同心县| 丰顺县| 池州市| 吉隆县| 怀远县| 广河县| 霞浦县| 天峻县| 崇明县| 佛冈县| 察哈| 汝州市| 岳池县| 肥乡县| 明水县| 泰兴市| 巩义市| 江口县| 北碚区|