编写Java程序,使用while循环语句计算1+1/2!+1/3!…1/20!之和.

作者&投稿:独孤咱 (若有异议请与网页底部的电邮联系)
编写Java程序,使用while循环语句计算1+1/2!+1/3!…1/20!之和.~

呵呵,你知道阶乘的,他其实就是这样的,比如1/24就可以写成(1/2)*(1/12)这样吧,a=a*(1/i)就可以理解成这样子,第一个是1,第二个就是1*(1/2)结果就是0.5下来呢,就是0.5*(1/3)这个呢就等于是(1/2)*(1/3)也就等于是1/3的阶剩了呀,你说对不,一直循坏到结果,这样理解了吧.
在不理解可以问我,我在线.

package practice;
/*
使用while循环 计算1+1/2!+1/3!+...+1/20!
a用于存储前n个阶乘分之一
sum 用于累加和
*/
public class WhileDemo {
public static void main(String[] args) {
/*i=i+1的简写形式是i+=1;但是二者有本质的区别:
如果 i是short类型,+=:会自动类型提升,而=则不会
所以
short i=0;
i+=1;//编译通过,类型提升
i=i+1;//编译失败,因为这是赋值操作,
i是short类型,而1是默认是int类型
*/
double sum = 0,a = 1;//因为是分式,所以用double类型
int i = 1;
while(i <= 20) {
sum +=a;
i++;
a*=(1.0/i);//使a的值发生变化
System.out.println(a*i);
}
System.out.println(sum);
System.out.println("_________________________");
ForDemo.main(args);
System.out.println(Text.jieCheng(4));
}
}
class ForDemo{
public static void main(String[] args) {
double sum = 0,a = 1;
for (int i = 1; i <=20; i++) {
sum +=a;
a*=(1.0/i);
System.out.println(a*i);
}
sum--;

System.out.println(sum);
}
}
//递归做法:效率不高,判断影响性能
class Text{
public static void main(String[] args){
// double sum=0.0,count=1.0;
// while(count<=20.0){
// sum+=1.0/(jieCheng(count));
// count++;
// }
// System.out.print(sum);
}
public static long jieCheng(long sum){
/* for(int i=1;i<=c;i++){
sum*=i;
}*/
if(sum<=1)return 1;
return sum*jieCheng(sum-1);
}
}

  • package practice;  

  • /* 

  • 使用while循环 计算1+1/2!+1/3!+...+1/20! 

  • a用于存储前n个阶乘分之一 

  • sum 用于累加和 

  • */  

  • public class WhileDemo {  

  • public static void main(String[] args) {  

  • /*i=i+1的简写形式是i+=1;但是二者有本质的区别: 

  • 如果 i是short类型,+=:会自动类型提升,而=则不会 

  • 所以  

  • short i=0; 

  • i+=1;//编译通过,类型提升 

  • i=i+1;//编译失败,因为这是赋值操作, 

  • i是short类型,而1是默认是int类型 

  • */  

  • double sum = 0,a = 1;//因为是分式,所以用double类型  

  • int i = 1;  

  • while(i <= 20) {  

  • sum +=a;  

  • i++;  

  • a*=(1.0/i);//使a的值发生变化  

  • System.out.println(a*i);  

  • }  

  • System.out.println(sum);  

  • System.out.println("_________________________");  

  • ForDemo.main(args);  

  • System.out.println(Text.jieCheng(4));  

  • }  

  • }  

  • class ForDemo{  

  • public static void main(String[] args) {  

  • double sum = 0,a = 1;  

  • for (int i = 1; i <=20; i++) {  

  • sum +=a;  

  • a*=(1.0/i);  

  • System.out.println(a*i);  

  • }  

  • sum--;  

  • System.out.println(sum);  

  • }  

  • }  

  • //递归做法:效率不高,判断影响性能  

  • class Text{  

  • public static void main(String[] args){  

  • //       double sum=0.0,count=1.0;  

  • // while(count<=20.0){  

  • // sum+=1.0/(jieCheng(count));  

  • // count++;  

  • // }  

  • // System.out.print(sum);  

  • }  

  • public static long  jieCheng(long sum){  

  • /* for(int i=1;i<=c;i++){ 

  • sum*=i; 

  • }*/  

  • if(sum<=1)return 1;  

  • return sum*jieCheng(sum-1);  

  • }  

  • }  



呵呵,你知道阶乘的,他其实就是这样的,比如1/24就可以写成(1/2)*(1/12)这样吧,a=a*(1/i)就可以理解成这样子,第一个是1,第二个就是1*(1/2)结果就是0.5下来呢,就是0.5*(1/3)这个呢就等于是(1/2)*(1/3)也就等于是1/3的阶剩了呀,你说对不,一直循坏到结果,这样理解了吧. 在不理解可以问我,我在线.

这要看你while循环体怎么写的了?
1)
int i=1,n=0;int sum=0;
while(sum<=1){
sum=sum+1/i;
i++;
}
n=i;
上面这种情况无法跳出循环,因为1/i=0(i>1),所以sum=1;循环不会停止;

2)
double i=1,sum=0;int n=0;
while(sum<=1){
sum=sum+1/i;
i++;
}
n=(int)i;
上面这种情况无法跳出循环,因为1/i>0(i>1),所以sum>1;循环停止,n=2;
你可能是除法规则没有理解,除法和数据类型相关的。

a = a*(1.0/i)
a乘上1/N 就是 1/N!

阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。 例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。
参考阶乘概念
http://baike.baidu.com/view/245476.htm#1

把a*(1.0/i)赋值给a


用java写一个程序?
JAVA程序计算素数 设计JAVA application程序,计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件,以下是一个使用Java语言编写的程序,可以计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件:javaCopy code import java.io.FileOutputStream; import java.io...

编写JAVA程序实现一个简单的日历(高分求高手)(追加分)
编写JAVA程序实现一个简单的日历(高分求高手)(追加分) 主要功能包括显示当月的日历表,当日特殊显示。一定要用JAVA语言写。谢谢了eryaruoshui@126.com... 主要功能包括显示当月的日历表 ,当日特殊显示。 一定要用JAVA语言写。谢谢了eryaruoshui@126.com 展开  我来答 ...

求写一个Java小程序~~
假设年利率是7.49%。命名一个常量来代表利率。注意还款按月进行,所以利率只是年利率7.49的1\/12。 代码:注:按揭贷款有两种月供还款方式:本金还款和本息还款,题目要求的是按“本息还款”方式进行编程,再程序中我把两种还款方式都写了出来,关键地方有注释!import java.text.NumberFormat;import java...

求解:写一段Java程序,要求简单实现计算器的功能,是GUI编程,代码简洁最...
import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;\/\/暂时不用考虑连加问题 \/\/点第一个运算符 点运算符...

java程序如何让程序重新再跑一遍,就是我写的这个游戏如何实现重新开始...
使用方法调用,配合循环 写一段伪代码,可能会帮你理清思路:do{ 游戏开始运行;...\/\/循环中可以用方法调用来运行游戏 \/\/游戏失败,给用户提示 再玩一次?接受用户的选择 \/\/如果用户选择"是",再次循环,游戏重新开始 \/\/如果用户选择”否",退出循环,游戏结束 }while(真);...

编写Java程序,要求在命令行窗口输出二十六个英文字母的大小写。
public class PrintLetter{public static void main(String args []){PrintLetter pl = new PrintLetter();pl.printLowerCase ();pl.printUpperCase ();}void printLowerCase (){System.out.println("\\n");char a='a';for(int i=0;i<26;i++) { System.out.print(a+" "); a...

用Java编写程序 任意两个输入两个整数 输出它们相加的结果
import java.util.Scanner;public class Program1 {public static void main(String[] args) {Scanner i = new Scanner(System.in);int a = i.nextInt();int b = i.nextInt();if (a > 100 || a < 10 || b>100 ||b<10) { System.out.println("输入错误,请输入两位数!");}...

编写一个Java应用程序,实现将一个由英文字母、数字及其他符号构成的文件...
做回好人,回答你吧。直接看代码:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class jiami { public static void main(String[] args) { String source=null,target=null;try { File...

java程序怎么写
这个是用java语言实现数据结构,主要在数据结构内容里有涉及,代码等会再补充 下面的代码里简化了一点,用的是setData()方法产生随机数来输入整形数据,可以用scanner.next()方法来接收数据,大体的思路是差不多。import java.util.Random;class Matrix{ private int[][] data; private int size...

用JAVA编写一个实现加法运算的程序
public class Plus { public static void main(String[] args) { String fristParam = args[0];String secondParam = args[1];String result = plus(fristParam, secondParam);System.out.println(result);} private static String plus(String _sFristParam, String _sSecondParam) { String s...

德清县18058569300: 设计Java程序,应用while循环语句计算...
祢秦小牛: float sum=0.0; int a=1; for(int i=1;i<=20;i++) { a=a*i; sum+=1.0/a; } sum即为所求的结果

德清县18058569300: 如何用java while循环编程? -
祢秦小牛: package com.tx.day;/*题目:公司计划2011年培养学员3万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到10万人?*/ public class TT {public static void main(String[] args) {int num=30000;int year=2011;while(num<100000) {year++;num+=0.25*num;}System.out.println(year);} }//2017

德清县18058569300: 编写Java程序,怎么使用while循环语句计算1+1/2!+1/3!…1/20!之和? -
祢秦小牛: package practice;/*使用while循环 计算1+1/2!+1/3!+...+1/20!a用于存储前n个阶乘分之一sum 用于累加和*/public class WhileDemo {public static void main(String[] args) {/*i=i+1的简写形式是i+=1;但是二者有本质的区别:如果 i是short...

德清县18058569300: java编写程序,用while循环100以内 - 1+1/2 - 1/3+1/4 - …… - 1/99+1/10 -
祢秦小牛: public class su { public static void main(string[] args) { int sum = 0; int jia= 0; int jian = 0; for(int i =1; i {if(i % 2 != 0) { jia = i+1; } else{ jian = i- 1; }} sum = jia + jian; system.out.println(sum); } }

德清县18058569300: java 中关于while 循环 程序 -
祢秦小牛: 当a小于b,且b不等于c的时候,先执行sum=sum+b,然后b再递增1.具体就是:sum=3+6=9;然后因为b=6+1=7,此时已经是b=c,所以执行下面的a++,就是a=4+1=5.再返回上面的条件.继续sum=sum+6=9+6=15,同样此时b=6+1等于7,于是跳出执行a++,但此时a++=5+1=6,已经不符合大前题while(a

德清县18058569300: java程序 利用while循环语句,计算1!+2!+3!+…+20!的总和 -
祢秦小牛: long s=1; // 维护阶乘 long f=1; // 维护总和 for(int i=1;i<=20;i++) {f*=i;s+=f; } System.out.println(s);

德清县18058569300: java编写 利用while循环语句,计算1!+2!+3!+…+20!的总和 -
祢秦小牛: 呵呵,你知道阶乘的,他其实就是这样的,比如1/24就可以写成(1/2)*(1/12)这样吧,a=a*(1/i)就可以理解成这样子,第一个是1,第二个就是1*(1/2)结果就是0.5下来呢,就是0.5*(1/3)这个呢就等于是(1/2)*(1/3)也就等于是1/3的阶剩了呀,你说对不,一直循坏到结果,这样理解了吧. 在不理解可以问我,我在线.

德清县18058569300: 编写java程序,用while语句,算出1/2+2/3+3/5+4/8.....到第50项的运算 -
祢秦小牛: 完整代码如下:/** * 算出1/2+2/3+3/5+4/8.....到第50 * @author Administrator * */ public class MathExam { public static void main(String[] args) { int I = 1; double A = 1; double B = 2; double sum = 0; while (I <= 50) { sum = sum + A / B; if (I != 1) { ...

德清县18058569300: 编写Java程序计算一下1~100的所有整数中出现多少次数字9(用while循环实现) -
祢秦小牛: 现在公司这边没有java的编码环境,我现在在做.net的工作,我就提一下我的思路,假设全局变量sum,循环变量i,你建立一个全局变量用来统计出现9的次数,当你循环1~100的数字时,可以先判断本次循环的数是否是大于10(及两位数,10以内只有一个9,你懂的),当循环大于10后,通过%取模,/取整两个函数判断是否为9,当符合时sum++,已经说的很清楚了,如果还不懂,楼主就先等其他人帮你写下代码,不过建议楼主不要只想写代码,思路才是最重要的,以后工作也是一样,楼主加油哇,望采纳!

德清县18058569300: 用java做一个while循环的计算器 -
祢秦小牛: import java.util.Scanner;public class Test { public static void main(String args[]){ Scanner sc = new Scanner(System.in); String isNext = "y";int opera = 0;//表示运算符int before=0,after=0;while(isNext == "y"){ System.out.println("选...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网