1. 程式人生 > >大數計算階乘和

大數計算階乘和

階乘和()目前還存在問題

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
//char a[35]; 

long int c[40000]={1,0};
long int s[40000]={0,0};
//求10000以內n的階乘。



int main()
{
    int count=1,count1=10,i,j,t,n=0,k;
    cin>>n;
    for(j=1;j<=n;++j)
    {
        for
(i=0;i<count;++i) c[i]*=j; for(i=0;i<count;++i) { if(c[i]>9) { for(k=0;k<count;++k) { if(c[count-1]>9) count++; c[k+1]+=c[k]/10; c[k]%=10
; } } } for(i=0;i<count1;++i) s[i]+=c[i]; for(i=0;i<count1;++i) { if(s[i]>9) { for(k=0;k<count1;++k) { if(s[count1-1]>9) count1++; s[k+1
]+=s[k]/10; s[k]%=10; } } } } while(s[count1]==0)count1--; for(i=count1;i>=0;--i) cout<<s[i]; return 0; }

相關推薦

大數計算

階乘和()目前還存在問題 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std;

C語言:計算

從鍵盤輸入一個數,用C語言計算該數的階乘 #include <stdio.h> #include<stdlib.h> int main() { int i,sum = 0, p = 1, n; scanf("%d",&n); if(

PTA-計算(C語言)

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

2018/12/05 PAT刷題 L1-013 計算 Java

題目簡單, 就是for迴圈的事情, 程式碼如下: import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] ar

7-41 計算 (10 分)

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

L1-013. 計算(Java)PAT團體程式設計天梯賽-練習集

對於給定的正整數N,需要你計算 S = 1! + 2! + 3! + … + N!。 輸入格式: 輸入在一行中給出一個不超過10的正整數N。 輸出格式: 在一行中輸出S的值。 輸入樣例:

PAT團隊程式設計天梯賽-習題集L1-013 計算

題目要求題目分析說不清楚,還是看程式碼吧示例程式碼import java.util.Scanner; public class L1_013 { public static void main(Str

PAT L1 013 計算

題目描述: 對於給定的正整數N,需要你計算 S = 1! + 2! + 3! + ... + N!。 輸入格式: 輸入在一行中給出一個不超過10的正整數N。 輸出格式: 在一行中輸出S的值。

7-41 計算

#include <stdio.h>  int factorial(int n);  int main(void)   {       int n, sum, i;     scanf("%d",&n);     sum = 0;     for(i=1; i<=n; i++){

為什麼用 遞迴 計算“斐波那契數列”是不合適的?

        我們看到的參考書中,當講到遞迴時基本上都是使用“階乘”和“斐波那契數列”來舉例子,確實可以幫助我們瞭解遞迴,但卻導致我們在平時編寫類似程式時,總是使用遞迴來實現。那麼在實際專案中,使用遞迴來實現這兩個程式到底是否合適?答案是否定的。         《C和指

可以計算次方的大數計算器

#include<iostream> #include<vector> #include<string> #include<cstdio> #include<ctime> using namespace std; #define LEFT '('

計算N的前N 項之和

計算N的階乘 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() {     int i;     int n;     int sum = 1;     scanf("%d\n",&am

2017/7/31-zznu-oj-問題 B: N! 普拉斯 -【求大數-ll存不下-然後取尾零的個數輸出-暴力模擬】

討論 def ems long size 字符串 problems turn dmi 問題 B: N! 普拉斯 時間限制: 1 Sec 內存限制: 128 MB提交: 114 解決: 35[提交] [狀態] [討論版] [命題人:admin] 題目描述 在處理階乘時也

逆元

get getc can sca urn oid i++ const con 掃盲。今天做題才知道這玩意。。(那你之前是怎麽算階乘的哇。。只會暴力暴力暴力嘛。。。。) 1 #include<cstdio> 2 typedef long long LL

Description 求階乘和。 Input 輸入小於10的正整數n。 Output 輸出s得值, s=1!+2!+…+n! Sample Input 1 3 5 Sample Output 1 9 153 #include<stdio.h> int fact(int

C:求n的

//求階乘和,每次呼叫函式求出當n的階乘,新增到sum變數中, int factorial(int n) { //靜態區域性變數,儲存階乘和 static int sum=0; //終止遞迴 if (n==0) { return sum;

連結串列實現大數

連結串列實現大數階乘 題目 大數運算——計算n的階乘 (n≥20)。 基本要求 (1)資料的表示和儲存: ①累積運算的中間結果和最終的計算結果的資料型別要求是整型——這是問題本身的要求。 ②試設計合適的儲存結構,要求每個元素或結點最多儲存資料的3位數值。 (2)資料的操作及其實現: 基於設計的儲

鏈表實現大數

元素 大數運算 pre let ++ 結果 get delet value 鏈表實現大數階乘 題目 大數運算——計算n的階乘 (n≥20)。 基本要求 (1)數據的表示和存儲: ①累積運算的中間結果和最終的計算結果的數據類型要求是整型——這是問題本身的要求。 ②試設計合適的

n的前n項的

#include<stdio.h> #include<Windows.h> void Mimi(int n) { int i = 0; int sum = 1; int num = 0; if (n <= 0) { printf("客官用心點哦:\n")

hdu1042 N!(大數)

N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 94583   &