C++求階乘的兩種方法
1.使用靜態(tài)局部變量static
靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束之后不消失而保留原值,即其占用的存儲(chǔ)單元不釋放,在下一次該函數(shù)調(diào)用時(shí),該變量保留上一次函數(shù)調(diào)用結(jié)束時(shí)的值。
靜態(tài)局部變量賦初值實(shí)在編譯時(shí)進(jìn)行的,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。
code:
#include<iostream>
using namespace std;
int fac(int n)
{
static int f=1;
f=f*n;
return f;
}
int main()
{
int i;
for(i=1;i<=5;i++)
{
cout<<i<<"!="<<fac(i)<<endl;
}
return 0;
}
print:
/*
1!=1
2!=2
3!=6
4!=24
5!=120
*/
2.使用遞歸的方法
首先進(jìn)行退出遞歸的判斷,然后進(jìn)行遞歸
code:
#include<iostream>
using namespace std;
int fac(int n)
{
if(n<0) return 0;
if(n==0||n==1)return 1;
if(n>1)
{
return n*fac(n-1);
}
}
int main()
{
int i;
for(i=1;i<=5;i++)
{
cout<<i<<"!="<<fac(i)<<endl;
}
return 0;
}
print:
/*
1!=1
2!=2
3!=6
4!=24
5!=120
*/
- C語(yǔ)言解線性方程的四種方法
- C語(yǔ)言解3元1次方程組 用初中學(xué)的最基本的聯(lián)合消元法
- c#實(shí)現(xiàn)一元二次方程求解器示例分享
- 在線一元二次方程計(jì)算器實(shí)例(方程計(jì)算器在線計(jì)算)
- C++求四個(gè)正整數(shù)最大公約數(shù)的方法
- C++使用遞歸方法求n階勒讓德多項(xiàng)式完整實(shí)例
- C++利用鏈棧實(shí)現(xiàn)表達(dá)式求值
- C++求Fib數(shù)列
- 使用C++遞歸求解跳臺(tái)階問(wèn)題
- C++短路求值(邏輯與、邏輯或)實(shí)例
- C++通過(guò)自定義函數(shù)求一元二次方程的根
相關(guān)文章
基于Qt實(shí)現(xiàn)自定義時(shí)間選擇控件
這篇文章主要為大家詳細(xì)介紹了如何基于Qt實(shí)現(xiàn)自定義時(shí)間選擇控件,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12C++ STL priority_queue自定義排序?qū)崿F(xiàn)方法詳解
這篇文章主要介紹了C++ STL priority_queue自定義排序?qū)崿F(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03C語(yǔ)言模擬實(shí)現(xiàn)動(dòng)態(tài)通訊錄
本文主要介紹了C語(yǔ)言模擬實(shí)現(xiàn)動(dòng)態(tài)通訊錄,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07C語(yǔ)言使用ffmpeg實(shí)現(xiàn)單線程異步的視頻播放器
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言如何使用ffmpeg實(shí)現(xiàn)單線程異步的視頻播放器功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-12-12