1. 程式人生 > >用while迴圈計算1+1/2!+1/3!+1/4!...+1/20!(BigDecimal精確計算小數)

用while迴圈計算1+1/2!+1/3!+1/4!...+1/20!(BigDecimal精確計算小數)

用while迴圈計算1+1/2!+1/3!+1/4!...+1/20!

import java.math.BigDecimal;
public class Exemple {

	public static void main(String[] args) {
		// TODO 自動生成的方法存根
		BigDecimal sum = new BigDecimal(0.0);
		BigDecimal factorial = new BigDecimal(1.0);
		int i =1;
		while (i<=20){
			sum = sum.add(factorial);
			++i;
			factorial = factorial.multiply(new BigDecimal(1.0/i));
		}
		System.out.println("1+1/2!+1/3!...+1/20! = "+sum);
	}

}

結果如下:

1+1/2!+1/3!...+1/20! = 1.71828182845904522367258882524732563634867246268558104448130832136101139366719986414383110243797108748822820657493330665752903534700022508204525385549479876951292493516361991885142411580915233808389198581342610980977425822951724476374113374431295345516733481291917383751991568557019209000617394017755970330759280319424925748716392429788018461622511631047241914024775263254452027548084334842631749679270930789639542724477953673333791555400257219557963341089085618184152725912383836106812569589258574113531875910271222819280308083619226237539764181652472718046378704910462924352995976893461209516866339555490458432187283021232937484781081946952237499593023333299830547132009915333667625253213008545235615683712431845561218831886238965727822680526029924244310460181428675093053813137695411922636380686046919663567678071558475494384765625

領悟:使用BigDecimal類完成大數字與高精度運算

相關推薦

while迴圈計算1+1/2+1/3+1/4...+1/20BigDecimal精確計算小數

用while迴圈計算1+1/2!+1/3!+1/4!...+1/20! import java.math.BigDecimal; public class Exemple { public static void main(String[] args) { // T

8. while迴圈計算列印2到100的偶數和三種方法

用while迴圈計算列印2到100的偶數和(三種方法)       1. 迴圈—while       語法:while(條件){ //迴圈體-迴圈操作//更新迴圈條件++/--;    } 2.continue 作用:終止本次迴圈的執行,繼續下一次的迴圈 <!d

1 什麼技術實現什麼問題-2 實現步驟-3 遇到的問題

shiro在專案中的應用 shiro 在專案中,我們用shiro充當安全框架來進行許可權的管理控制。 在web.xml配置了shiroFilter,對所有的請求都進行安全控制。之後在shiro的配置檔案配置一個id為shiroFilter的bean物件。這點要保證和web.xml中filter的名字一致。

2.6 使用for迴圈遍歷檔案 2.7 使用while迴圈遍歷檔案 2.8 統計系統剩餘的記憶體 2.9 資料型別轉換計算計算mac地址 3.0 資料型別轉換列表與字典相互轉換

2.6 使用for迴圈遍歷檔案 open r:以只讀方式開啟 w: 以寫方式開啟 a: 以追加模式開啟 r+: 以讀寫模式開啟 w+: 以讀寫模式開啟(參見w) a+: 以讀寫模式開啟(參見a) rb: 以二進位制模式開啟 read 我們先寫一個檔案,叫1.txt 內容如下 111 22

嘗試實現一個管理系統, 名字和電話號分別兩個列表儲存 =======通訊錄管理系統======= 1.增加姓名和手機 2.刪除姓名 3.修改手機 4.查詢所有使用者 5.根據姓名查詢手機號 6.退出

name = [] tel = [] while True: print('==通訊錄管理系統==') print('1.增加姓名和手機') print('2.刪除姓名') print('3.修改手機') print

bat批處理中怎樣while迴圈(挺好)

bat  常用命令  echo、@、call、pause、rem(小技巧:用::代替rem)是批處理檔案最常用的幾個命令,我們就從他們開始學起。  ==== 注 ===========  首先, @ 不是一個命令, 而是DOS 批處理的一個特殊標記符, 僅用於遮蔽命令列回顯. 下面是DOS命令列或批處理中可

樓梯有n階臺階,上樓可以一步上1階,2階,3階,程式設計序計算共有多少種不同的走法?

提示:設n階臺階的走法數為f(n)。如果只有1個臺階,走法有1種(一步上1個臺階),即f(1)=1;如果有2個臺階,走法有2種(一種是上1階,再上1階,另一種是一步上2階),即f(2)=2;如果有3個

Babel中的stage-0,stage-1,stage-2以及stage-3

.get else hub 到你 resolv cti component else if 便在 大家知道,將ES6代碼編譯為ES5時,我們常用到Babel這個編譯工具。大家參考一些網上的文章或者官方文檔,裏面常會建議大家在.babelrc中輸入如下代碼: {

Oracle 10g 10.2.0.1 在Oracle Linux 5.4 32Bit RAC安裝手冊一抹曦陽

oracl track microsoft sun msu ica http net ref Oracle 10g 10.2.0.1 在Oracle Linux 5.4 32Bit RAC安裝手冊(一抹曦陽).pdf下載地址 ,step by step

關於Laravel5.2在php5.3.6X和在php7.1.10下的內存溢出

bug src 編譯安裝 內存溢出 lar 也不會 eight 內存泄露 images php5.3.6X是編譯安裝,在debug模式下,頻繁報出內存泄露警告 php7.1.10下則不會有此錯誤. 順便提下:測試發現ThinkPHP也不會有該內存泄露警告! 希

1、VGG16 2、VGG19 3、ResNet50 4、Inception V3 5、Xception介紹——遷移學習

1-1 算法 應用 tle 你在 mode 很多 簡單回顧 gis ResNet, AlexNet, VGG, Inception: 理解各種各樣的CNN架構 本文翻譯自ResNet, AlexNet, VGG, Inception: Understanding vario

(1)Map集合 (2)異常機制 (3)File類 (4)I/O流

目錄 all exc 修改 運行時異常 運行時 val 獲取絕對路徑 重寫 1.Map集合(重點)1.1 常用的方法 Set<Map.Entry<K,V>> entrySet() - 用於將Map集合轉換為Set集合。 其中Map.Ent

如何區分Babel中的stage-0,stage-1,stage-2以及stage-3

fun too com window 內容 解決 真的 creat 加載 大家知道,將ES6代碼編譯為ES5時,我們常用到Babel這個編譯工具。大家參考一些網上的文章或者官方文檔,裏面常會建議大家在.babelrc中輸入如下代碼: { "pres

Algs4-1.5.2使用quick-union算法完成練習1.5.1

int() width fin out http detail vat web -- 1.5.2使用quick-union算法(請見1.5.2.3節代碼框)完成練習1.5.1。另外,在處理完輸入的每對整數之後畫出id[]數組表示的森林。答:public class UF

Python while 迴圈列印菱形的2種方法

#while作業 #x,y數學方法 #abs()函式返回的是數字的絕對值 #利用x,y數學座標法 # 假設 x 的最小座標為-12 # x=-12 # while x<=12: # 當x小於最大座標時迴圈開始到最大結束期間24次迴圈 #     # y

python day12 ——1.生成器2.生成器表示式 3.列表推導式

一、生成器  什麼是生成器. 生成器實質就是迭代器。  在python中有三種方式來獲取生成器:  1. 通過生成器函式。 2. 通過各種推導式來實現生成器 。 3. 通過資料的轉換也可以獲取生成器。   1.首先, 我們先看一個很簡單的函式:

JavaSE基礎(day15)(1)Collection介面(2)List介面(3)Queue介面(4)Set介面

默寫: 1.簡答題 寫出String類中常用的10個方法,要求寫出方法名和功能即可。 2.簡答題 寫出正則表示式中有關數量的規則。 3.畫圖題 畫出集合框架的兩張圖。 今天內容: (1)Collection介面 (2)List介面 (3)Queue介面 (4)Set介面

JavaSE基礎(day17)(1)異常(2)File類(3)I/O流

默寫: 1.程式設計題 自定義Student類,屬性有:學號和姓名,不需要編寫該類封裝的程式碼。 自定義TestStudent類,在main()方法中建立兩個Set集合,其中第一個Set集合按照元素的學號自然排序放入3個學生資訊並列印;其中另外一個Set集合按照比較器進行姓名的排序並列印

1.實現strcpy 2.實現strcat 3.實現strstr 4.實現strchr 5.實現strcmp 6.實現memcpy 7.實現memmove

    在前面介紹了字串的一個大概,真正的掌握需要大量程式碼的磨練。下面介紹幾個字串常用的幾個函式,這些函式都是在<string.h>裡面,這裡是介紹原理,進行模擬還原,也就是自己寫這個函式,實現原有功能。可能有一些語言表達不好的地方,或者有些地方的語言生硬,難以

1.實現strcpy 2.實現strcat 3.實現strstr 4.實現strchr 5.實現strcmp 6.實現memcpy 7.實現memmove

1.模擬實現strcpy函式拷貝字串 #include<stdio.h> #include<assert.h> char* my_strcpy(char* dest,const char *src) { char* ret = dest