大家来找茬,题目很简单但是有关问题出在哪呢
大家来找茬,题目很简单但是问题出在哪呢
/**
【程序20】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
*/
import java.util.*;
public class TestFractionSum {
private static double sum = 0.0;
public static void main(String args[]) {
int temp;
double numerator,denominator,fun;
System.out.println("你想计算前多少项的和,请输入一个正整数:");
Scanner input = new Scanner(System.in);
temp = input.nextInt();
for(int i=1;i<=temp;i++) {
numerator = (double)(i + 1);
denominator = (double)i;
sum = sum + numerator/denominator;
fun = numerator + denominator;
denominator = numerator;
numerator = fun;
}
System.out.println("前"+temp+"项的和是:"+sum);
}
}
这个是本人写的程序,检查了一下思路,觉得没有错,但是在测试答案的正确性的时候却出现了误差,请各位大侠指教!
------解决方案--------------------
/**
【程序20】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
*/
import java.util.*;
public class TestFractionSum {
private static double sum = 0.0;
public static void main(String args[]) {
int temp;
double numerator,denominator,fun;
System.out.println("你想计算前多少项的和,请输入一个正整数:");
Scanner input = new Scanner(System.in);
temp = input.nextInt();
for(int i=1;i<=temp;i++) {
numerator = (double)(i + 1);
denominator = (double)i;
sum = sum + numerator/denominator;
fun = numerator + denominator;
denominator = numerator;
numerator = fun;
}
System.out.println("前"+temp+"项的和是:"+sum);
}
}
这个是本人写的程序,检查了一下思路,觉得没有错,但是在测试答案的正确性的时候却出现了误差,请各位大侠指教!
------解决方案--------------------
- Java code
import java.util.*; /** 【程序20】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 1.程序分析:请抓住分子与分母的变化规律。 */ public class TestFractionSum { private static double sum = 0.0; public static void main(String args[]) { int temp; double numerator, denominator, fun; System.out.println("你想计算前多少项的和,请输入一个正整数:"); Scanner input = new Scanner(System.in); temp = input.nextInt(); numerator = 2.0; denominator = 1.0; for (int i = 1; i <= temp; i++) { sum = sum + numerator / denominator; fun = numerator + denominator; denominator = numerator; numerator = fun; } System.out.println("前" + temp + "项的和是:" + sum); } }