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

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

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华亭县| 彭州市| 寻乌县| 鄂伦春自治旗| 上思县| 八宿县| 平江县| 罗山县| 海淀区| 会理县| 太仓市| 重庆市| 朝阳区| 张家界市| 长宁区| 临猗县| 阜南县| 涪陵区| 景东| 凌源市| 封丘县| 横山县| 徐汇区| 中山市| 安多县| 西宁市| 甘德县| 师宗县| 天气| 清流县| 额敏县| 桃源县| 宁明县| 夏津县| 宜州市| 安西县| 穆棱市| 宾阳县| 徐水县| 曲麻莱县| 南宁市|