1. 程式人生 > >vip題庫之階乘計算(C++版)

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

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

3628800


#include <iostream>
using namespace std;
#define M 10

int a[M];  //定義全域性變數儲存資料陣列
int main()
{
	int n;
	cin >> n;
	int c = 0;   //定義進位
	int s;   //儲存乘以後的值
	//memset(a, 0, sizeof(a));  //清空陣列
	a[0] = 1;
	int i, j;
	for ( i = 2;i <= n;i++)
	{
		for ( j = 0;j < M;j++)
		{
			s = a[j] * i + c;
			a[j] = s % 10;
			c = s / 10;
		}
	}

	for (i = M - 1;i > 0;i--)
		if (a[i])
			break;
	for (j = i;j >= 0;j--)
		cout << a[j] ;

	system("pause");
}
ps : 這是在vs2015環境下編譯成功的

相關推薦

vip計算C++

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

藍橋杯計算大數問題

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

計算高精度

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

PTA-計算C語言

對於給定的正整數N,需要你計算 S=1!+2!+3!+…+N!。 輸入格式: 輸入在一行中給出一個不超過10的正整數N。 輸出格式: 在一行中輸出S的值。 輸入樣例: 3 輸出樣例: 9 #include<stdio.h> int main() { int n=

6-8 簡單計算10 分 本題要求實現一個計算非負整數的簡單函式。

int Factorial( const int N ); 其中N是使用者傳入的引數,其值不超過12。如果N是非負整數,則該函式必須返回N的階乘,否則返回0。int Factorial( const int N ){  int fa=0;  if(N>=0)  { fa

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

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

LeetCode13. 羅馬數字轉整數c++實現

input rcp name iii leetcode nbsp out pre sin 問題描述: 羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。 字符 數值 I 1 V 5

7-41 計算10 分

對於給定的正整數N,需要你計算 S=1!+2!+3!+...+N!。 輸入格式: 輸入在一行中給出一個不超過10的正整數N。 輸出格式: 在一行中輸出S的值。 輸入樣例: 3 輸出樣例: 9 思路:第N項為前N-1項*N,利用這個規律 ,可以將每項的乘積都

數據 數據查詢DQL語句

dqlDQL:Data Query Language,數據查詢語言SELECT.SELECT col1,col2,... FROMtbl_name[WHERE clause][ORDER BY ‘col_name‘[DESC]] [LIMIT [m,]n];Limit m,n跳過m個,要n個如以下語句跳過2

7-1 2018final世界盃也瘋狂球隊積分計算20 分

這是一個世界盃賽場,有球隊類,其中,隊名、記錄每場比分的陣列、累計積分 是其三個私有資料成員;有兩個成員函式,分別是根據各場比分計算累計積分、以及計算淨勝球總和。請新增適當的建構函式。 積分計算規則是:勝者得三分,負者不得分,打平雙方各得一分。 輸入格式: 輸入僅一行,表示這個球隊資訊,分別

Java怎樣求解n的 n!詳解

n!是表示為自然數n的階乘,即:n!=1 × 2 × 3…(n-2) × (n-1) × n。如: 9!=9×8×7×6×5×4×3×2×1。 階乘也可以遞迴方式定義:0!=1,n!=(n-1)!×n。 希望對您有所幫助。 具體程式碼實現: import java.util.Sc

HihoCoder - 1789:問題 簡單數學

描述 給定 n, k,求一個最大的整數 m,使得 km 是 n! 的約數 輸入 第一行兩個正整數 n, k 2 ≤ n,k ≤ 109 輸出 輸出最大的 m 樣例輸入 5 2 樣例輸出 3   思路:

6-6 求單鏈表結點的15 分 本題要求實現一個函式,求單鏈表L結點的和。這裡預設所有結點的值非負,且題目保證結果在int範圍內。

int FactorialSum( List L ){  int max=0,sum=0;  List p,head;  head=L;  p=head;  while(p!=NULL)  {    if(max<p->Data)    max=p->Dat

JavaScriptTab標簽原始

html ole body mouseover contents 處理 lin var 封裝 最原始的Tab標簽頁,只需再添加CSS樣式即可,重點在於Tab標簽底部邊框樣式的處理。待完善:代碼的封裝與復用。 <!DOCTYPE html> <html&g

Framework7學習筆記 搜索欄

spa 結果 ... 視圖 nbsp str -i type bar 一:搜索欄 應用場景:一般用於在含有列表的頁面中進行內容檢索。 二:定義搜索欄 搜索欄應該放到“.page”內,“.page-content”前; 在page-conten

棧應用 括號匹配問題Python

text 所有 != parent else 括號 check style pan 棧應用之 括號匹配問題(Python 版) 檢查括號是否閉合 循序掃描被檢查正文(一個字符)裏的一個個字符 檢查中跳過無關字符(所有非括號字符都與當前處理無關) 遇到開括號將其壓入棧 遇到

資料結構連結串列操作c++實現

1、單向連結串列(頭結點不含資料,不佔長度),C++實現: #include <iostream> #include <stack> using namespace std; /*****定義節點****/ typedef struct node{ int va

大話設計模式簡單工廠模式Java

大話設計模式——第一章(簡單工廠模式)   題目:請用C++、Java、C#或VB.NET任意一種面嚮物件語言實現一個計算器控制檯程式,要求輸入兩個數和運算子號,得到結果。 import java.io.Console; import java.util.Scanner; /**

SAP移介面實現C#

 SAP移庫介面C#版本實現程式碼如下: /// <summary> /// 移庫介面(將倉庫中的地址移到線邊倉,線邊倉的地址用模板檔名稱作為引數傳過來) /// </summary> /// <param

【RL-TCPnet網路教程】第40章 RL-TCPnetTFTP客戶端精簡

第40章      RL-TCPnet之TFTP客戶端 本章節為大家講解RL-TCPnet的TFTP客戶端應用,學習本章節前,務必要優先學習第38章的TFTP基礎知識。有了這些基礎知識之後,再搞本章節會有事半功倍的效果。 本章教程含STM32F407開發板和STM32F429開發板。 40.1  初學者重要提