C++求階乘的兩種方法
1.使用靜態(tài)局部變量static
靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束之后不消失而保留原值,即其占用的存儲單元不釋放,在下一次該函數(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
*/
相關(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)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03C語言使用ffmpeg實(shí)現(xiàn)單線程異步的視頻播放器
這篇文章主要為大家詳細(xì)介紹了C語言如何使用ffmpeg實(shí)現(xiàn)單線程異步的視頻播放器功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-12-12