高精度之階乘和

2021-09-14 00:41:53 字數 1159 閱讀 4824

之前只會求高精度的階乘,不知道他們怎麼求和,經過別人的知道(特地感謝某的博主的指導),然後知道了這個新的求階乘和的方法

首先先看一下之前我是怎麼求階乘的

就是類似於我之前求斐波拉契數列的時候求的方法

然而這種方法,不好來求階乘和

#include #include int a[10010][10010];

int main()

while(cnt!=0)

}for(i=d;i>=0;i--)

printf("%d",a[n][i]);

printf("\n");

}return 0;

}

因此,為了更好的求階乘和,下面是一種新的方法,求階乘

#define inf 0x3f3f3f3f

#include#include#include#include#include#includeusing namespace std;

int a[10010];

int main()}}

for(i=d;i>=0;i--)

printf("%d",a[i]);

printf("\n");

}return 0;

}

因此,下面就是理所當然的階乘和的解決方法啦

#define inf 0x3f3f3f3f

#include#include#include#include#include#includeusing namespace std;

int a[10010];

int sum[10010];

int main()

}//上面求玩階乘,下面就是求和的步驟,精度堆疊的計算方法很像

for(i=0; i<=d; i++)

sum[i]+=a[i];

for(i=0; i<=d; i++)}}

for(i=d; i>=0; i--)

printf("%d",sum[i]);

printf("\n");

}return 0;

}

於是這個問題就解決了啊,**應該不是很複雜biu~~

高精度階乘

問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每乙個元素都乘以k,請注意處理相...

高精度階乘

問題描述 輸入乙個正整數n,輸出n 的值。其中n 123 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類推。將a乘以乙個整數k變為將陣列a的每乙個元素都乘以k,請注意處理相應的...

階乘和(高精度演算法)

對於自然數n的階乘,當n比較小時,可以32位整數int範圍內準確表示 例如12 479001600 2147483647 231 1 而20 2432902008176640000 9223372036854775807 263 1 可以在64位整數long long int範圍內準確表示 但是 n...