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

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

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长岭县| 嘉兴市| 丁青县| 叙永县| 怀集县| 滦平县| 普格县| 偏关县| 余姚市| 浦北县| 黔西县| 西宁市| 天水市| 灵丘县| 沁水县| 互助| 定西市| 宁乡县| 绥化市| 泗水县| 城口县| 化德县| 绥芬河市| 南和县| 永修县| 垦利县| 济源市| 鹤岗市| 东丽区| 哈巴河县| 远安县| 方正县| 峨边| 资阳市| 东兴市| 新昌县| 连云港市| 阜宁县| 易门县| 舞阳县| 宁安市|