一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java中1+1d/5和1+1/5的區別說明

java中1+1d/5和1+1/5的區別說明

2022-02-12 15:18胡子球手 Java教程

這篇文章主要介紹了java中1+1d/5和1+1/5的區別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

java 1+1d/5和1+1/5的區別

主要區別就是數據類型不同

1+1d/5的結果是1.2, 是double類型. 因為1d就是double類型,1d/5結果自動提升成double類型,1+1d/5結果也自動提升成double類型. .

1+1/5的結果1, 是int類型, 因為1/5是整除(會丟失小數部分的精度…) . 兩邊操作數都是int類型. 最后在加上1還是int類型.所以結果就是int類型.

java參考代碼如下

?
1
2
3
4
5
6
7
8
public class Test {
public static void main(String[] args) {
    double num1 = 1 + 1d / 5;
    System.out.println(num1);//輸出1.2
    int num2    = 1 + 1 / 5;
    System.out.println(num2);//輸出1
 }
}

計算1+1/2!+1/3!+...+1/20!之和

原題:計算1+1/2!+1/3!+…+1/20!之和

觀察題目,本題難點就是要計算階乘,不妨用一個循環來計算階乘,再用一個循環來計算從1/1!到1/20!的和。代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package java1;
public class sum {
   public static void main(String args[]) {
       //用s來表示階乘結果
       int s=1;
       double sum=0;
      //計算1/1!到1/20!的和
       for(int i=1;i<=20;i++) {
           //分別計算j從1到20的階乘
           for(int j=1;j<=i;j++) {
               s=s*j;
           }
           sum+=1.0/s;
       }
       System.out.println(sum);
   }
}

這個輸出結果為無窮,我當時想半天也沒結果,后來同學指出我每次算每個數的階乘時并沒有將重置為1;所以正確代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package java1;
public class sum {
   public static void main(String args[]) {
       //用s來表示階乘結果
       double sum=0;
      //計算1/1!到1/20!的和
       for(int i=1;i<=20;i++) {
           //每次算完階乘后,計算下一次階乘時都要將s重置為1
           int s=1;
           //分別計算j從1到20的階乘
           for(int j=1;j<=i;j++) {
               s=s*j;
           }
           sum+=1.0/s;
       }
       System.out.println(sum);
   }
}

正確結果如下

java中1+1d/5和1+1/5的區別說明

可以觀察到上面代碼的時間復雜度為o(n^2),我們其實可以思考一下如何運用優化階乘,我這里聽老師說階乘可以運用遞歸思想。代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package java1;
public class sum {
    //運用遞歸用來計算從1到20分別的階乘結果
    public static int JieChen(int i) {
           if(i==1) {
               return 1;
           }
           else {
               return (JieChen(i-1)*i);
           }
    }
   public static void main(String args[]) {
       double sum=0;
      //計算1/1!到1/20!的和
       for(int i=1;i<=20;i++) {
           int s;
           //用來計算i的階乘
           s=JieChen(i);
           sum+=1.0/s;
       }
       System.out.println(sum);
   }
}

運用上面思路不僅可以計算有限的階乘分之一的和,而且我們還可以拓展到計算無限個

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/weixin_44955363/article/details/103063794

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久天堂成人影院 | 女人日男人 | 日本一区免费观看 | 亚洲国产欧美在线人成aaa | 欧美日韩亚洲综合在线一区二区 | 男神插曲女生动漫完整版动漫 | 成人高清视频在线观看 | x8x8国产在线观看2021 | 国产91精品露脸国语对白 | 精品免费久久久久久影院 | 精品国产区 | 欧美日韩三区 | 男同精品视频免费观看网站 | 午夜一区二区免费视频 | 亚洲精品国产在线观看 | 精品欧美一区二区三区四区 | 波多野结衣家庭教师 | 久久一本综合 | 国产午夜免费不卡精品理论片 | 极品美女穴 | 国产99re在线观看69热 | 亚洲成年网 | 国产精品亚洲午夜一区二区三区 | 日韩在线免费播放 | tube62hdxxxx日本| 久久三级网站 | 日本一区免费观看 | 亚洲视频久久 | 免费一级毛片在线播放放视频 | 久久亚洲精品AV无码四区 | 免费看男人狂躁女人 | 国产一区二区三区在线看 | 美国video | 武侠古典久久亚洲精品 | 亚洲天堂一区二区在线观看 | 探花 在线 | 天天操天天干天天做 | 亚洲国产情侣偷自在线二页 | 国产欧美日韩不卡一区二区三区 | 美女光屁股网站 | 日本中文字幕不卡在线一区二区 |