emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            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 閱讀(1349) 評論(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用來計數(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]<<" ";
          }  回復  更多評論
            

          主站蜘蛛池模板: 台北市| 大同县| 长治市| 新昌县| 射阳县| 仪陇县| 石城县| 深圳市| 集安市| 当涂县| 张家界市| 新竹县| 延寿县| 突泉县| 南阳市| 蓬莱市| 吴江市| 肇东市| 长白| 米泉市| 米易县| 嘉善县| 运城市| 南部县| 庆元县| 罗城| 永兴县| 金华市| 延长县| 泰州市| 开远市| 衡水市| 孟州市| 福海县| 登封市| 儋州市| 会泽县| 长白| 岚皋县| 中西区| 广宗县|