C語言遞迴解決階乘問題
阿新 • • 發佈:2019-01-05
遞迴函式的概念是:直接或者間接地呼叫自身的演算法
遞迴函式:用函式自身給出定義的函式
而且在學習的後期 學到了分治法可以感覺到分治法產生的子問題是原問題的較小模式,這就為使用遞迴技術提供了不小的方便
即在合適的情況,使用遞迴反覆分治,大問題變相同性質的小問題,再進行遞迴求解
今天第一次寫部落格來一個簡單的遞迴例子 階乘 大一時不會遞迴一般用類似for的迴圈體就行求解
正常遞迴和for迴圈等差別在於for迴圈佔記憶體比較大
時間複雜度來說的話 好像是一樣的
遞迴經常被詬病效率低
遞迴求階乘 程式碼如下
#include<stdio.h>
int fun(int n)
{
if(n==0||n==1)
return 1;
else
return n*fun(n-1);
}
void main(){
int a=0,sum;
printf("請輸入正整數N:");
scanf_s("%d",&a);
sum=fun(a);
printf("jieguo :%d",sum);
}
不要被後面的輸入迷惑 我只是加一個輸入相當於getchar()。
21 day challenge this is first day.