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

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

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

2019-11-14 12:07:49
字體:
來源:轉載
供稿:網友
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]);	}} 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潼关县| 荃湾区| 东安县| 祥云县| 平山县| 灵寿县| 香格里拉县| 黔南| 新津县| 云和县| 合川市| 区。| 丰顺县| 喀什市| 舞钢市| 徐闻县| 常德市| 桃源县| 游戏| 清水县| 沙坪坝区| 中江县| 西藏| 宜兴市| 金昌市| 滕州市| 陕西省| 图们市| 龙井市| 盖州市| 沁源县| 克东县| 英吉沙县| 丹巴县| 巩义市| 晋城| 富裕县| 仙游县| 铜川市| 镇远县| 新乐市|