国产探花免费观看_亚洲丰满少妇自慰呻吟_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]);	}} 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双牌县| 高碑店市| 汤阴县| 华容县| 申扎县| 临漳县| 钟山县| 田林县| 巴楚县| 宝丰县| 洛南县| 舒兰市| 丽水市| 淮滨县| 田阳县| 清丰县| 永仁县| 黄石市| 西贡区| 札达县| 永顺县| 哈尔滨市| 积石山| 信宜市| 合肥市| 孟州市| 桂平市| 黄陵县| 桐乡市| 天台县| 衡水市| 化德县| 仙游县| 茌平县| 余江县| 财经| 赣榆县| 五华县| 湄潭县| 搜索| 惠来县|