JAVA 求1/2+2/3+3/5+5/8+8/13+13/21 ... 前20项之和。
publicclassFujia{publicstaticvoidmain(String[]args){intI=1;doubleA=1;doubleB=1;double...
public class Fujia {
public static void main(String[] args){
int I = 1;
double A = 1;
double B = 1;
double sum = 0;
while (I <= 10){
sum = sum + A/B;
System.out.println("和为:"+sum);
A = B + A;
sum = sum + B/A;
B = A + B;
I++;
};
System.out.println("和为:"+sum);
}
}
有没有人能为我解释一下,第一次循环的时候SUM是不是不对啊,总感觉不对啊,谁能为我解释一下思路!谢谢 展开
public static void main(String[] args){
int I = 1;
double A = 1;
double B = 1;
double sum = 0;
while (I <= 10){
sum = sum + A/B;
System.out.println("和为:"+sum);
A = B + A;
sum = sum + B/A;
B = A + B;
I++;
};
System.out.println("和为:"+sum);
}
}
有没有人能为我解释一下,第一次循环的时候SUM是不是不对啊,总感觉不对啊,谁能为我解释一下思路!谢谢 展开
展开全部
分析规律:分子为前两个分子之和,分母为前两个分母之和。
public static void main(String[] args) {
double sum = 0;
int n = 1;
int m = 1;
int j;
for(int i=1; i<=20; i++) {
sum = sum + m/(double)(m+n);
j = m;
m = m+n;
n = j;
}
System.out.println("sum=" + sum);
}
输出结果:sum=12.278294788817238。
展开全部
你是1/2开始加的 为什么前面sum = sum + A/B要加个1呢
public static void main(String[] args){
int I = 1;
double A = 1;
double B = 2;
double sum = 0;
while (I <= 20){
sum = sum + A/B;
if (I!=1){
System.out.println("第"+(I-1)+"次相加的和为:"+sum);
}
double temp = B;
B = B + A;
A = temp;
I++;
};
}
public static void main(String[] args){
int I = 1;
double A = 1;
double B = 2;
double sum = 0;
while (I <= 20){
sum = sum + A/B;
if (I!=1){
System.out.println("第"+(I-1)+"次相加的和为:"+sum);
}
double temp = B;
B = B + A;
A = temp;
I++;
};
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double A = 1;
double B = 2;
sum = sum + A/B;
while (I <= 10){
double temp = B;//先把B的值保存下来
B= A+B;//分母为上一次分子和分母的和
A= temp ;//分子为上一次的分母
sum = sum + A/B;
I++;
};
double B = 2;
sum = sum + A/B;
while (I <= 10){
double temp = B;//先把B的值保存下来
B= A+B;//分母为上一次分子和分母的和
A= temp ;//分子为上一次的分母
sum = sum + A/B;
I++;
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double num = 0;//声明和sum
for(double i=1;i<=20;i++){
//20次循环,double类型是因为计算会有小数,int 类型计算回忽略小数
num += (i/(i+1));//记录和sum的值,
//i=1的时候 num = num+(i=1/(i+1=2)) 就是num = 0+(1/2)
}
System.out.println("和为:"+num);//循环完毕输出
for(double i=1;i<=20;i++){
//20次循环,double类型是因为计算会有小数,int 类型计算回忽略小数
num += (i/(i+1));//记录和sum的值,
//i=1的时候 num = num+(i=1/(i+1=2)) 就是num = 0+(1/2)
}
System.out.println("和为:"+num);//循环完毕输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//题目:求1/2+2/3+3/5+5/8+8/13+13/21 ... 前20项之和。
/*分析题目:可观察题目得知:从第二项开始,每一项分数的分母等于上一项的分子,分子等于
上一项的分子加分母,因为我们先需要定义三个变量,int i = 1,j = 2;double sum=0.0(i为分
母,j为分子,sum为总和);*/
//因此代码如下:
import java.util.Scanner;
public class fengge{
public static void main(String[] args ){
int i = 1,j = 2,temp=0; //temp为中间变量
double sum = 0.0;
for( int t = 1;t < =20;t++){ //题意为前20项的和,因此t<=20
System.out.println(j*1.0/i);
temp = i;//用temp存储中间变量交换分子和下一项的分母值
i = j;
j += temp; //新的分子值等于上一项分数分母与分子的和
sum += j*1.0/i; //求和
}
System.out.println("前20项之和为:"+sum); //输出和
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询