天天看點

基于visual Studio2013解決C語言競賽題之0405階乘求和



題目

基于visual Studio2013解決C語言競賽題之0405階乘求和

解決代碼及點評

這道題和上一道題類似,第n個累加項 = n-1累加項的n倍

由于有這個規律,我們可以用一個for循環實作

但是例子代碼并沒有這麼做,大家可以回去修改下代碼,使得代碼更加有效率

這個代碼把n的階乘寫成了一個函數

/************************************************************************/
/* 
5.  用循環語句編寫求 1到20的階乘的程式。
*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int f45(int num)  // 實作階乘的函數
{
  int sum=1;
  if (num==0)
  {
    return sum;
  }
  for ( int i=1;i<=num;i++)  // 使用for循環,累乘所有項
  {

    sum*=i;
  }
  return sum;
}
void  main()
{
  int totlesum=0;
  for (int i=1;i<21;i++)   // 21階乘累加
  {
    totlesum+=f45(i); // f45函數實作了i的階乘,每次累加傳回值
  }
  printf("和為:%d",totlesum );
  system("pause");
}      

代碼下載下傳及其運作

下載下傳解壓後用VS2013打開工程檔案

點選 “本地Windows調試器” 執行

程式運作結果