C语言编程题:阶乘计算
生活随笔
收集整理的這篇文章主要介紹了
C语言编程题:阶乘计算
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一.題目:求20!的結(jié)果
?
描述:將數(shù)學(xué)概念的迭代關(guān)系式i!=(i-1)!*i轉(zhuǎn)換為計(jì)算機(jī)循環(huán)意義上的迭代關(guān)系式——用新的變量存儲(chǔ)新值(乘積),并不斷由舊值遞推出變量的新值。求n!的函數(shù)fanc(n)的處理對(duì)象時(shí)一個(gè)int型數(shù)據(jù),函數(shù)的返回值應(yīng)該用浮點(diǎn)類型(double或float)表示,因此函數(shù)的首部可以確定為double fanc(int n)。
?
輸入:輸入的是n的大小,直接通過main函數(shù)調(diào)用fanc(n)函數(shù)得出結(jié)果
?
輸出:輸出n!=f
#include "stdio.h" //求n!的函數(shù) double fac(int n) {int i;double f=1;if(n>0){for(i=1;i<=n;i++)f=f*i;}else if(n==0)f=1;//根據(jù)階乘的定義 0!=1else if(n<0)f=-1;//如果n為負(fù)數(shù),則返回-1,表示錯(cuò)誤return f; }int main() {int n;double f;//用來存放最后的結(jié)果printf("Input n:");scanf("%d",&n);f=fac(n);//(int)f;if(f==-1){printf("參數(shù)輸入錯(cuò)誤!!\n");}else {printf("%d!的結(jié)果是=%e\n",n,f);}return 0; }?
編程技巧與注意事項(xiàng):
1.編程注意考慮函數(shù)的健壯性,要盡量?jī)?yōu)化函數(shù),是一個(gè)獨(dú)立函數(shù)具有良好的封裝性和相對(duì)完整的功能。如上面再fac(n)內(nèi)增加對(duì)0!和對(duì)錯(cuò)誤參數(shù)的處理。
2.在主函數(shù)和調(diào)用函數(shù)中同時(shí)用同一個(gè)符號(hào)定義和使用變量是合法的。
總結(jié)
以上是生活随笔為你收集整理的C语言编程题:阶乘计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【bzoj1911】 Apio2010—
- 下一篇: http详解 请求报文格式和响应报文格