1. 程式人生 > >藍橋杯vip題目 階乘計算

藍橋杯vip題目 階乘計算

問題描述
  輸入一個正整數n,輸出n!的值。
  其中n!=1*2*3*…*n。
演算法描述
  n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個位,A[1]表示a的十位,依次類推。
  將a乘以一個整數k變為將陣列A的每一個元素都乘以k,請注意處理相應的進位。
  首先將a設為1,然後乘2,乘3,當乘到n時,即得到了n!的值。
輸入格式
  輸入包含一個正整數n,n<=1000。
輸出格式
  輸出n!的準確值。
樣例輸入
10
樣例輸出
3628800

#include<stdio.h>
#include<string.h>
#define MAX 3000
int main()
{
	int a[MAX],i,j,n;
	int c=0;  //進位
	int s;
	memset(a,0,sizeof(a));
	scanf("%d",&n);
	a[0]=1;
	for(i=2;i<=n;i++)    //乘數 
	{
		for(j=0;j<MAX;j++)
		{
			s=a[j]*i+c;
			a[j]=s%10;
			c=s/10;
		}
	}
	for(i=MAX-1;i>=0;i--)   //從第一個不為零的開始 
	 if(a[i])
	    break;
	for(j=i;j>=0;j--)
	{
		printf("%d",a[j]);
	}
	return 0; 
}

相關推薦

藍橋vip題目 計算

問題描述   輸入一個正整數n,輸出n!的值。   其中n!=1*2*3*…*n。 演算法描述   n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個位,A[1]表示a的十位,依次類推。   將a乘以一

藍橋 基礎練習 計算 java

問題描述  輸入一個正整數n,輸出n!的值。  其中n!=1*2*3*…*n。演算法描述  n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個位,A[1]表示a的十位,依次類推。  將a乘以一個整數k變為

藍橋 基礎練習 計算

問題描述   輸入一個正整數n,輸出n!的值。   其中n!=1*2*3*…*n。 演算法描述   n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個位,A[1]表示a的十位,依次類推。   將a乘以

藍橋基礎練習 計算(簡單模擬)

 基礎練習 階乘計算   時間限制:1.0s   記憶體限制:512.0MB 問題描述   輸入一個正整數n,輸出n!的值。   其中n!=1*2*3*…*n。 演算法描述  

藍橋 演算法訓練 末尾

問題描述   給定n和len,輸出n!末尾len位。 輸入格式   一行兩個正整數n和len。 輸出格式   一行一個字串,表示答案。長度不足用前置零補全。 樣例輸入 6 5 樣例輸出

藍橋BASIC- 30 基礎練習 計算

問題描述   輸入一個正整數n,輸出n!的值。   其中n!=1*2*3*…*n。 演算法描述   n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個位,A[1]表示a的十位,依次類推。   將a乘以一個整數k變為將

藍橋 計算

問題描述   輸入一個正整數n,輸出n!的值。   其中n!=1*2*3*…*n。 演算法描述   n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個位,A[1]表示a的十位,依次類推。   將a乘以一個整數k變為將

[Java] 藍橋BASIC-30 基礎練習 計算

問題描述輸入一個正整數n,輸出n!的值。其中n!=1*2*3*…*n。演算法描述n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個

藍橋計算

題目: 輸入一個正整數n,輸出n!的值。   其中n!=1*2*3*…*n。 演算法描述   n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A

藍橋計算(大數問題)

計算機 amp 當前 高精度 get rip sizeof scrip code Description 輸入一個正整數n,輸出n!的值。 其中n!=1*2*3*…*n。 算法描述 n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。

PAT基礎程式設計題目集——6-8 簡單計算

原題目: 本題要求實現一個計算非負整數階乘的簡單函式。 函式介面定義: int Factorial( const int N ); 其中N是使用者傳入的引數,其值不超過12。如果N是非負整數,則該函式必須返回N的階乘,否則返回0。 裁判測試程式樣例: #include

PTA_基礎程式設計題目集_6-10 計算升級版 (20 分)“大數

題目地址 題目分析: 1.預估1000!的位數~~進行放大估計~~1000^900&100^100即是3*900+2*100+o<3000位; 2.這裡顯然需要利用陣列來儲存數字並進行運算,讓陣列成員每個儲存3位數字(題目條件已告知引數小於1000),我們構

vip題庫之計算(C++版)

問題描述   輸入一個正整數n,輸出n!的值。   其中n!=1*2*3*…*n。 演算法描述   n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數

十五:計算

windows.h clas -- sca 算法 turn str scanf 可能 題目:階乘計算 輸入一個正整數n,輸出n!的值。  其中n!=1*2*3*…*n。算法描述  n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個

計算(高精度)

OS 代碼 body 後乘 return () 需要 輸出格式 其中 問題描述   輸入一個正整數n,輸出n!的值。  其中n!=1*2*3*…*n。 算法描述   n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[

第四屆藍橋比賽題目——風扇控制系統

black play 程序說明 sign 狀態機 stat mode led 可用 /* 程序說明: 第七屆省賽風扇控制系統 軟件環境: Keil uVision 4.10 硬件環境: CT107單片機綜合實訓平臺(內部晶振11.0592MHZ) STC15F2

PTA之簡單計算

style factor 輸出 HR listitem 階乘 參數 長度限制 lang 本題要求實現一個計算非負整數階乘的簡單函數。 時間限制: 400ms 內存限制: 64MB 代碼長度限制: 16KB 函數接口定義: int Facto

Java 計算

所謂的階乘就是 3! =3*2*1  示例程式: public class TestFile { public static void main(String[] args) { int number=4; float result=0f; for(int

藍橋VIP——黑色星期五

1.問題描述 2.演算法分析 典型的日期計算,其實就是列舉思想,首先我們確定從1998.1.1日週四開始列舉,然後判斷該年是否為閏年,再去判斷當星期數為8時我們需要將星期數重置為星期1開始,當每天的天數等於月末+1天時重置天數為下個月1號,當月份為13時跳出迴圈,年份

基礎練習 計算

問題描述   輸入一個正整數n,輸出n!的值。   其中n!=1*2*3*…*n。 演算法描述   n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大