還記得分治法(Divide-and-Conquer)或遞迴(Recursion)結構嗎,請運用遞迴的概念來解數學裡的階乘,如階乘 n!,當 n 值越大時,越難計算,因為乘積的值都很大。你能運用分治法設計一個程式來計算 n 階乘(n!)的值嗎?請試求出 3! 和 10! 的計算結果,看看是否 10! 的結果就很大呢?
輸入一個正整數 n
輸出n!的值
3
6
#include <iostream>
using namespace std;
int f(int);
int main(){
int n;
cin >> n;
cout << f(n) ;
return 0;
}
int f(int n){
if(n <= 1)
return 1;
else
return n * f(n-1);
}
def f(n):
if n <= 1:
return 1
else:
return n * f(n-1)
n = int(input())
print(f(n))
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |