C語言用分別用遞歸和循環求數字的階乘的方法


以下代碼均為 自己 實現,嘻嘻!

參考文章:http://blog.csdn.net/talk_8/article/details/46289683

 

循環法

int CalFactorial(int x)
{
    int sum=1;
    for(int i=x;i>0;i--)
    {
        sum=sum*i;
    }
    return sum;
}

遞歸法

//遞歸
int  CalculateFactorial(int x)
{
    if(x>1)
    {
        return  CalculateFactorial(x-1)*x;
    }
    else if(x==1)
    {

        return x;
    }
}

完整代碼

//#include <stdlib.h>

#include "stdafx.h"

using  namespace std;

//遞歸
int  CalculateFactorial(int x)
{
    if(x>1)
    {
        return  CalculateFactorial(x-1)*x;
    }
    else if(x==1)
    {

        return x;
    }
}

//循環
int CalFactorial(int x)
{
    int sum=1;
    for(int i=x;i>0;i--)
    {
        sum=sum*i;
    }
    return sum;
}

int _tmain(int argc, _TCHAR* argv[])
{

    //int a=CalculateFactorial(6);    
    int a =CalFactorial(6);
    printf_s("%d\n",a);
    system("pause");

    return 0;
}
View Code

有關於算法的介紹請點擊我上面給的CSDN的鏈接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM