请教关于一道JAVA的编程题

[复制链接]
查看11 | 回复2 | 2009-3-20 10:36:12 | 显示全部楼层 |阅读模式
i>1 时
计算m(i)=1/2+2/3+.......+(i-1)/i
要求输出下表:
i
m(i)
2
0.5
3
1.1667
....
....
19
15.4523
20
16.4023
我写的程序 :
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String numString = JOptionPane.showInputDialog(null,
"Enter an index for thenumber:","Ex4.6",JOptionPane.QUESTION_MESSAGE);
double i=Double.parseDouble(numString);
if(i<=1)

JOptionPane.showMessageDialog(null,"the value you enter is wrong,the number must be bigger than 1",
"Ex4.6",JOptionPane.INFORMATION_MESSAGE);
else

JOptionPane.showMessageDialog(null,"the m(i) is"+factorial(i-1),
"Ex4.6",JOptionPane.INFORMATION_MESSAGE);
}
static double factorial(double i) {

double a = 1/2d+2/3d;

if(i==2)

return a;

else

return i/(i+1)+factorial(i-1);

}
}
我计算出了m(i),但是就是不知道怎么才能按要求的那样输出,请指教啊~~最好在我程序的基础上修改吧~~谢谢谢谢~~

回复

使用道具 举报

千问 | 2009-3-20 10:36:12 | 显示全部楼层
帮你重新做了一个,你可以参考一下:public class Test1 { TreeMap[I] map = new TreeMap[I]();static public void main(String[] sss) {Test1 t = new Test1();t.m(20);//System.out.println(t.map);
for (int i = 2; i <= 20; i++) { System.out.println(i + ":" + t.map.remove(t.map.firstKey()));...
回复

使用道具 举报

千问 | 2009-3-20 10:36:12 | 显示全部楼层
站个地,明早帮你改...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行