返回列表 發帖

20101002- d487: Order's computation process

1751年,歐拉以大寫字母 M 表示 m 階乘

M=1.2.3.....m  

1799 年,魯非尼在他出版的方程論著 述中,則以小寫字母 π 表示 m 階乘。

而在 1813年,高斯則以 Π(n) 來表示 n 階乘。

用來表示 n 階乘的方法起源於英國,但仍未能確定始創人是誰。

直至1827年,由於雅萊特的建議而得到流行,現在有時也會以這個符號作為階乘符號。

而最先提出階乘符號 n! 的人是克拉姆(1808),後來經過歐姆等人的提倡而流行,直至現在仍然通用。

輸入說明 :


每行一個整數 n

0 <= n <= 10

輸出說明 :


輸出 n! = n * (n-1) * (n-2) * ... * 2 * 1 = ( n! 的答案 )

請注意空格的輸出

處理完每組測資請換行

範例輸入 :

若題目沒有特別說明,則應該以多測資的方式讀取,若不知如何讀取請參考 a001 的範例程式。0
5
範例輸出 :

0! = 1 = 1
5! = 5 * 4 * 3 * 2 * 1 = 120提示 :


請用遞迴解題

出處 :


學姊 (管理員:example)

  1. #include<iostream>
  2. using namespace std;
  3. int main(void){
  4.    
  5.     int n = 0, temp = 1;
  6.     while(cin >> n){
  7.               if(n == 0){
  8.                    cout << "0! = 1 = 1" << endl;
  9.               }else{
  10.                   temp = temp * n;
  11.                   for(int i = (n - 1); i > 0; i--){
  12.                           temp = temp * i;
  13.                   }
  14.                   cout << n << "! = " << n;
  15.                   for(int i = (n - 1); i > 0; i--){
  16.                           cout << " * " << i;
  17.                   }
  18.                   cout << " = " << temp << endl;
  19.               }
  20.               n = 0;
  21.               temp = 1;
  22.     }
  23.    
  24. return 0;
  25. }
複製代碼
麻煩勒~

TOP

main()
{
int a,b,n;
while(scanf("%d",&n)==1)
    {
       int temp=n;
       if(n==0)
       {cout << "0! = 1 = 1\n";
        continue;}
      
       //把N輸出
        for(a=n-1;a>=1;a--)
        {
             //這邊填點程式碼         
        }
       //把temp輸出
    }
return 0;
}

TOP

返回列表