前段时间看到听说学习java每天写技术贴会对自己提升很大,我现在学习java也就2个周,算不上技术贴,就写写学习日记吧。

昨天师傅给我出了一道题,说是试试用java打印圆周率。

刚开始我的思路是,如果一个多边形的边数无限多,那么这个多边形就会无限靠近一个圆,那么用周长除以这个多边形的对角线就得到了圆周率的大概值,如果边数越多,那么得到的圆周率就越精确。

刚开始研究了老半天,最后一直找不到在边数增多的情况下,每条边的长度和对角线长度的对应关系。后来无奈,只有上网查了老祖宗​祖冲之及其各个外国友人的祖宗的一系列方法,最后拿到这个这个数学公式pi/4=1/1-1/3+1/5-1/7+1/9-1/11...

最后决定用程序把他写出来,想法步骤如下:

​1.想办法简化这个数学公式,容易让程序写出来,简化公式得到如下

pi/4=2/1*3+2/5*9+2/11*13.....

也就是当i为0 2 4 6 8

10的时候用(2*i+1)*(2*(i+1)+1)可以得到1*3,5*9,11*13这样的公式​

等式右边,分子始终是固定的,2;​分母则是奇数每两个相乘。

圆周率的四分之一则等于所有的分式相加的和,分数越多,结果则越靠近圆周率。

2.​那么,程序代码步骤大概如下

1)定义加多少次分数乘以二。​

2)​定义分子。

3)因为pi是一个相加的结果,定义变量pi,并初始化为0.0

4)​当i为0 2

4 6

8的时候,也就是i对2求余等于0的时候,把(2*i+1)*(2*(i+1)+1)赋值给分母

​5)将pi加上分子除以分母的值赋值给pi,一直循环4

5,循环次数越多得到的pi的值越精确

6)因为得到的值是pi的四分之一,所以打印的时候,将结果乘以4就是我们算出来的圆周率的值。

附上代码:

java打印圆周率代码

​​​最后发现一个问题,当分数累加和到达20000个之后,圆周率又开始不准确了,没有找到解决的办法。看看在以后的学习中是否找到更好的方法。

java的圆周率_java学习日记,圆周率的打印相关推荐

  1. java中怎么引用圆周率_Java简单计算圆周率完整示例

    本文实例讲述了java简单计算圆周率.分享给大家供大家参考,具体如下: 这两天在网上看到一个题,已知pi可以用函数4 * (1 – 1/3 + 1/5 – 1/7 + -) 计算,计算出小数点后五位( ...

  2. java 计算圆周率_java程序计算圆周率

    昨晚波士堂看到王兴背诵圆周率,感到有兴趣了,于是下个txt,圆周率100万位开始背诵,太辛苦,代码实现出来继续背. package com.xjtu.pi; /** * π的随机数算法 * 描述: * ...

  3. java怎么做复式表格_Java学习日记(一)基础

    标识符: 由26个英文字母大小写,数字:0-9 符号:_ $ 组成 定义合法标识符规则: 1.数字不可以开头. 2.不可以使用关键字. 3.Java中严格区分大小写. Java中的注释格式: 单行注释 ...

  4. java求2到100内的素数_java学习日记-基础-列出2~100内的素数

    素数的概念:一个整数如果只能整除1和它本身,那么这个整数就是一个素数 方法一:素数是除去能被2整除.3整除.5整除.7整除的整数,但包含2,3,5,7 public classSushu {publi ...

  5. android xml java混合编程_Java学习中注解与多线程,网络编程与XML技术

    本部分内容主要有集合框架及泛型,实用类,输入和输出处理,注解与多线程,网络编程与XML技术.初次学习这部分会感觉很难,主要是概念难于理解,最好是多看看例子,多练习.下面是个人的总结 拉勾IT课小编为大 ...

  6. java helloworld代码_java学习应用篇|逃不掉的HelloWorld

    本文知识点 1.表白不是发起进攻的冲锋号,而是吹响胜利的号角 2.除了爱情不讲道理,公理也不讲道理 3.这世界,离了javac,也是可以运行的! 4.Hello,寺水 写程序并不是写代码 看前面啰啰嗦 ...

  7. java自学难点_java学习重难点

    三人行必有我师,人生是需要不断学习的,在这里我们相遇就是缘分,希望各位可以看完这篇文章,也欢迎大家在下面留言讨论,天冷了,也动动手指转发收藏一下,谢谢大家! 在Java中修饰符总共有一下几种: 1.访 ...

  8. java 内存类_Java学习——类的生命周期和内存

    常识是本能,有足够的常识便是天才.--肖伯纳 一.类的生命周期 类的生命周期:1.加载:将二进制流加载进来.class 2.连接: 验证:确保加载进来的数据不会损害虚拟机 准备:为类变量分配内存,附默 ...

  9. 学习java的步骤_java学习的基本步骤

    Java是一个通用的编程语言,其实可以干很多事,怎么学Java就看怎么用了.但有一些基本的步骤: 熟悉一种文本编辑器, 比如:Vim, Emacs, Notepad++, TextMate等.知道哪些 ...

最新文章

  1. 图灵九月书讯 ——金秋时节推荐给程序员们的书
  2. proDAD Erazr
  3. android 筛选控件_Flutter学习六之实现一个带筛选的列表页面
  4. 资源 | Deeplearning.ai课程与笔记汇总
  5. java treemap_Java TreeMap lastKey()方法与示例
  6. ICCV 2021 | 带你了解微软亚洲研究院CV领域前沿进展
  7. 不小心运行了一个***程序~word 2003 打开2007格式文件的转换器.rar 里的
  8. 安装Cocoapods, 更新gem出现的问题
  9. 语法分析(3)...
  10. 一句代码搞定权限请求,从未如此简单
  11. smote算法 不平衡数据集处理方法
  12. Windwos tar 命令详解
  13. 二分法求解方程的根java_【数值分析】利用二分法和牛顿公式求解方程的根
  14. 公众号封面图内容数据提取软件
  15. 多进程中之文件描述符继承的消除
  16. java给word表格追加行_Java 使用Spire.Cloud.Word给Word文档添加表格
  17. html中鼠标点击效果的制作,用CSS实现鼠标单击特效-网页设计,HTML/CSS
  18. 三子棋小游戏(经过轻微改编可变为五子棋)
  19. Webdriver - webdriver hangs when get or click
  20. 【GDOI2016模拟3.10】习用之语

热门文章

  1. php new对象 调用函数,关于JS中new调用函数的原理介绍
  2. 圆柱体积怎么算立方公式_【六年级数学微课】巧算圆锥的体积
  3. python 程序开发以及推荐机制设计
  4. tf.Variable()、tf.get_variable()
  5. MySQL给用户设置密码(修改密码)、创建用户,grant为某个IP、某个网段或所有IP地址创建访问用户并授权
  6. 华为12月份鸿蒙适配mate40,华为:Mate40系列在12月可优先升级鸿蒙系统
  7. J.U.C系列(五)BlockingQueue的使用
  8. java中实现将十六进制按位取反
  9. 在java中将数据信息写入本地文本(1)
  10. 史上最详细Docker安装Elasticsearch、ik分词器、可视化工具,每一步都带有步骤图!!!