C++求階乘的兩種方法
更新時間:2013年12月08日 17:03:48 作者:
這篇文章主要介紹了C++求階乘的兩種方法,有需要的朋友可以參考一下
1.使用靜態(tài)局部變量static
靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束之后不消失而保留原值,即其占用的存儲單元不釋放,在下一次該函數(shù)調(diào)用時,該變量保留上一次函數(shù)調(diào)用結(jié)束時的值。
靜態(tài)局部變量賦初值實在編譯時進行的,即只賦初值一次,在程序運行時它已有初值。
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.使用遞歸的方法
首先進行退出遞歸的判斷,然后進行遞歸
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++中sprintf使用的方法與printf的區(qū)別分析
這篇文章主要介紹了C++中sprintf使用的方法與printf的區(qū)別,實例分析了sprintf與printf的具體用法及相關注意事項,具有一定參考借鑒價值,需要的朋友可以參考下2015-01-01
C語言庫函數(shù)strcpy的使用及模擬實現(xiàn)
本文主要介紹了C語言庫函數(shù)strcpy的使用及模擬實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-04-04
詳解C語言中的內(nèi)存四區(qū)模型及結(jié)構(gòu)體對內(nèi)存的使用
這篇文章主要介紹了C語言中的內(nèi)存四區(qū)模型及結(jié)構(gòu)體對內(nèi)存的使用,包括結(jié)構(gòu)體中內(nèi)存泄漏情況的注意點提醒,需要的朋友可以參考下2016-03-03

