1. 程式人生 > >1177:計算N!

1177:計算N!

1177:計算N!

Description

你的好友小王最近學了一個新的運演算法則-----階乘,但他很懶,不想一步一步計算,早知道你是一個程式設計師高手,所以他想讓你來幫他編一個程式,能馬上得到N的階乘。

Input

輸入包含若干行資料,每行都有一個整數N(0<=N<=500)。

Output

與輸入對應輸出N的階乘。

Sanple Input

2

4

Sample Output

2

24

Source

[email protected]

#include<iostream>
using namespace std;
int main()
{
    int N,i,j;
    while(cin>>N)
    {
       int a[17000]={0};
        a[0]=1;
        int temp,count=0;
        for(i=2;i<=N;i++)
        {
            for(j=0;j<17000;j++)
            {
                temp=a[j]*i+count;
                count=temp/10;
                a[j]=temp%10;
            }
        }
        for(i=16999;i>=0;i--)
            {
                if(a[i])
                       break;
            }
            for(int j=i;j>=0;j--)
                cout<<a[j];
            cout<<endl;
    }
    return 0;
}


相關推薦

1177:計算N

1177:計算N! Description 你的好友小王最近學了一個新的運演算法則-----階乘,但他很懶,不想一步一步計算,早知道你是一個程式設計師高手,所以他想讓你來幫他編一個程式,能馬上得到N的階乘。 Input 輸入包含若干行資料,每行都有一個整數N(0&l

計算N(陣列模擬超大數運算)

計算N! Time Limit:1000MS Memory Limit:32768K Description yaojian最近學了一個新的運演算法則——階乘,但他很懶,不想一步一步計算,所以他想讓你來幫他編一個程式,能馬上得到N的階乘。 Input 輸入包含若干

計算n的位數

/* log10(12*13)=log10(12)+log10(13)=2 */ #include<stdio.h> #include<math.h> int main() {     int zushu,n,i;     double  sum;

輸入不超過10000的正整數,計算n的具體值。

輸入:輸入有若干組,每組資料包含一個整數n(n<=10000)。 輸出:n!的具體值。 程式碼如下: #include<iostream> #include<cstring> using namespace std; int main(){

實驗三:分別用for,while;do-while循壞語句以及遞歸的方法計算n,並輸出算式。

分享圖片 return 方法 gui rgs class ima n! 用法 源代碼: package jiecheng;import java.util.Scanner;public class JieCheng { public st

實驗三:分別用for、while和do-while循環語句以及遞歸方法計算n,並輸出算式

scanner bsp ret while 循環語句 rda font ips == 實驗三:分別用for、while和do-while循環語句以及遞歸方法計算n!,並輸出算式 //用for循環語句求n! Public class jiecheng { Public

c++ 求sum(n),n可以為極大的數 並程式計算執行時間

 此程式為用C++求1! + 2! + 3! +  …… + n! 其中n可以為極大的數,通常情況下double型只能存放1! + 2! + 3! + …… + 170!採用陣列的方法儲存資料可以做到算無窮大的數的階乘的和,期限制因素只在於程式中定義的陣列的大小。假如有比該

【練習】計算1+2+...+n!之和

方法1:用2層迴圈控制,外部決定1到10(階乘數的變化),內部負責計算階乘,最後把每次階乘相加 注意: (1)外部迴圈每進來一次(i變一次)將sum重置1,否則sum是上一個數字的階乘 #include <stdio.h> int main () { int

HDU 1042 N

描述 spa 之前 font pan return task ces pro 題目來源:http://acm.hdu.edu.cn/showproblem.php?pid=1042Problem DescriptionGiven an integer N(0 ≤ N ≤ 1

求階乘,輸入一個正整數 n,輸出n

factor i++ print 階乘 pri tor n) printf main #include<stdio.h>int factorial (int n); int main(){ int n; scanf("%d",&n); printf("

N的階乘附帶簡單大整數類的輸入輸出(暫時沒有深入的了解)

ios sta 好的 n! width ear ati str cstring Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! 我的思路:就想著大整數類去了,才發現自己還不能很好的掌握,其實

light oj 1045 - Digits of Factorial K進制下N的位數

class lsp eno pac lan and val section href 1045 - Digits of Factorial Factorial of an integer is defined by the following function f(0)

編寫函數fun,計算n!

input 編寫 printf print ble 計算 double 開始 inpu #include <stdio.h> double fun ( int n ){ double result = 1.0 ;/************found*******

【HDU 1042】N

str ive TE name har inline cal LG namespace 題目鏈接 題目描述 Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! 就是算n!。

演算法題:求N末尾0的個數和求二進位制數中1的個數

1、給定一個整數,那麼N的階乘N!末尾有多少個0呢? 解題思路:N!=K*10^M,M的值即為N!末尾0的個數。又10^M=(2^M)*(5^M),因為一個數進行質因數分解後,2出現的概率比5大得多。所以只有計算出1到N包含多少個5的因子 public class demo2 {

hdu-1124(數學問題,求n的尾零的個數)

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1124 思路:每五個數1個0,5個5就2個0(不用管2,一定充足) #include<iostream> #include<cstdio> #include<cmath>

HDU1042 N陣列處理大數

***a[i][]表示的是i!,每一個a[i][j]存放一個小於10000。   ***用w[i]跟隨記錄數的長度。 ***10000!是一個35660位數 #include <iostream> #include <cstdio> #incl

286頁PDF教你如何搞明白深度學習的演算法、理論與計算系統(可下載)

【導讀】如何將深度學習等AI演算法應用到實際場景裡,不是一件容易的事情。 2016年,卡耐基梅隆大學電腦科學院的終身教授邢波(Eric Xing)在匹茲堡創辦了Petuum,他致力於建立一個平臺,通過自定義的虛擬化和作業系統構建機器學習和深度學習應用程式,為企業提供所需的機器學習工具。結合

計算1+2+3+4+……+10

#include <stdio.h> #include <stdlib.h> int Factor(int n) { int result = 1; for (int i = 1; i <= n; i += 1) { result *=i; } return r

設計一個具有陣列越界的異常處理的程式,假設計算n個實數的和,用陣列存放。分別採用3種異常處理方式設計程式

Java三種不同的異常處理方法 第一種:不處理,交給jvm處理 package chuki; import java.util.*; public class one { public static void main(String[] args) { int n, sum = 0