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

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

基礎練習 階乘計算

2019-11-11 04:59:50
字體:
來源:轉載
供稿:網友

問題描述

  輸入一個正整數n,輸出n!的值?! ∑渲衝!=1*2*3*…*n。算法描述  n!可能很大,而計算機能表示的整數范圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個位,A[1]表示a的十位,依次類推。  將a乘以一個整數k變為將數組A的每一個元素都乘以k,請注意處理相應的進位?! ∈紫葘設為1,然后乘2,乘3,當乘到n時,即得到了n!的值。輸入格式  輸入包含一個正整數n,n<=1000。輸出格式  輸出n!的準確值。樣例輸入10樣例輸出3628800代碼分享:
/*此題關鍵部分在于進位的處理,以及結果的輸出。重點留意code的第15-18行 21-23行 */ #include<stdio.h>#include<string.h>int main(){	int R[3000];//儲存結果的數組 	int n,i,j;	int num;	memset(R,0,sizeof(R));//先將結果數組全部賦值為0 	scanf("%d",&n);	R[0]=1;//第一位表示個位 	num=1;//表示當前保存結果的數組中有效的位數 	for(i=2;i<=n;i++){		int c=0;//c表示進位,初始化為0 		for(j=0;j<3000;j++){			int s=R[j]*i+c;//s暫時儲存結果,由進位和當前位乘積相加得到 			R[j]=s%10;//去除十位數字,保留個位數字 			c=s/10;//求進位				}	}	for(i=2999;i>=0;i--)		if(R[i])			break;//去除結果數組前面無效的0部分 	for(j=i;j>=0;j--)		PRintf("%d",R[j]);//由高到低輸出結果 	printf("/n");	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宾阳县| 长阳| 镇宁| 华坪县| 叶城县| 铁力市| 西藏| 象山县| 海淀区| 项城市| 四子王旗| 朝阳县| 奈曼旗| 东宁县| 友谊县| 灌南县| 巴林左旗| 拜泉县| 乌兰县| 古浪县| 新泰市| 漾濞| 茌平县| 天柱县| 西乌珠穆沁旗| 定边县| 珲春市| 芦山县| 巩留县| 邢台市| 壶关县| 辽宁省| 甘谷县| 新丰县| 邓州市| 房产| 侯马市| 香河县| 大石桥市| 隆昌县| 砚山县|