Re: [分享] 計算 e 到小數點下一億位
看板C_and_CPP (C/C++)作者Schottky (Schottky)時間11年前 (2013/09/23 01:48)推噓0(0推 0噓 0→)留言0則, 0人參與討論串3/3 (看更多)
※ 引述《newversion (海納百川天下歸心)》之銘言:
: 借標題發文一下,弱者小弟也有一個心願
: 1. 計算 sqrt(x) 到小數 1萬位
: 2. 計算 10000!
: 要能做到以上,需具哪些知識?或是給在下一點提示或關鍵字。
可能我前面寫的 code 不是很淺顯易懂... 不過我要說的是, 使用 gmp 或 mpfr
幫你做巨大整數/超高精度浮點運算是很方便的, 以你的這兩個題目來說:
// 計算 sqrt(x)
#include <stdio.h>
#include <math.h>
#include <mpfr.h>
int main(int argc, char *argv[])
{
mpfr_t r;
unsigned long int precision, x=2;
precision = ceill(10000*logl(10)/logl(2));
mpfr_init2(r, precision);
mpfr_sqrt_ui(r, x, MPFR_RNDN); // <-- 重點就只有這行
mpfr_printf("%.10000Rf\n", r);
mpfr_clear(r);
return 0;
}
// 計算 10000!
#include <stdio.h>
#include <gmp.h>
int main(int argc, char *argv[])
{
mpz_t s;
unsigned int n = 10000;
mpz_init_set_ui(s, 1);
for (n=1; n<=10000; n++) { // <-- 重點就只有這個迴圈
mpz_mul_ui(s, s, n);
}
gmp_printf("%Zd\n", s);
mpz_clear(s);
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.11.23
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章