国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

(函數題)4-10 階乘計算升級版

2019-11-14 13:01:44
字體:
來源:轉載
供稿:網友
4-10 階乘計算升級版 

本題要求實現一個打印非負整數階乘的函數。

函數接口定義:

void PRint_Factorial ( const int N );

其中N是用戶傳入的參數,其值不超過1000。如果N是非負整數,則該函數必須在一行中打印出N!的值,否則打印“Invalid input”。

裁判測試程序樣例:

#include <stdio.h>void Print_Factorial ( const int N );int main(){    int N;				    scanf("%d", &N);    Print_Factorial(N);    return 0;}/* 你的代碼將被嵌在這里 */

輸入樣例:

15

輸出樣例:

1307674368000

void Print_Factorial ( const int N ){	if (N<0) printf("Invalid input");	else if(N==0) printf("1");	else { /*這個程序的算法是仿照擺豎式計算兩書乘法的方法,乘數的每一位乘以被乘數,大于10則進位*/		int a[20000]={1};     /*由于這題比較變態,N最大為1000,所以只能采用數組來存儲答案,且設定的數組長度非常長*/		int digit=1,carry=0;   /*digit為位數,carry為進位*/		int temp,i,j;		for (i=1;i<=N;i++) { 			for (j=0;j<digit;j++) {				temp=a[j]*i+carry;   /*temp為未進位前的數字*/ 				a[j]=temp%10;				carry=temp/10;				}			while(carry!=0) {				a[++digit-1]=carry%10; /*必須限制carry在[0,9]*/				carry=carry/10;				}	 		}  		for(i=digit-1;i>=0;i--)   /*按數組的逆序輸出,即為答案*/ 			printf("%d",a[i]);	}} 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涟水县| 禄丰县| 栾城县| 分宜县| 商南县| 淄博市| 临武县| 庐江县| 三明市| 封开县| 句容市| 邵东县| 六盘水市| 清徐县| 运城市| 无极县| 宝坻区| 卓尼县| 龙山县| 肃北| 涿州市| 西贡区| 曲阳县| 瑞昌市| 江北区| 浮梁县| 遂平县| 绿春县| 志丹县| 晋城| 舒城县| 呼和浩特市| 新宁县| 安多县| 竹山县| 于田县| 巴林左旗| 广水市| 渭南市| 多伦县| 北宁市|