JAVA程序设计求1-100的阶乘和

利用Swing组件编程利用BigInteger类,计算1-n的阶乘和n=100。操作界面如下:

亲,java的界面不太受欢迎哦~~大概按你要求做了,看看吧~~

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JEditorPane;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextArea;

public class yoyo extends JFrame{

public static void main(String[] args){

yoyo yo=new yoyo();

yo.show();

}

public yoyo(){

setDefaultCloseOperation(EXIT_ON_CLOSE);//设置退出时结束程序

setTitle("计算阶层和");

setSize(400, 250);

setLocation(100, 100);//坐标

//把控件实例化

final JEditorPane edit=new JEditorPane();

final JButton button=new JButton("计算和");

final JTextArea area=new JTextArea(null, "", 8, 18);

JPanel myPanel1=new JPanel();//这个是第一行的布局

myPanel1.add(new JLabel("请输入整数n:"),BorderLayout.WEST);

myPanel1.add(edit,BorderLayout.CENTER);

myPanel1.add(button,BorderLayout.EAST);

JPanel myPanel2=new JPanel();//这个是第二行的布局

myPanel2.add(new JLabel("1至n的阶乘和是:"),BorderLayout.WEST);

myPanel2.add(area);

//把上面的布局加入画布中

this.add(myPanel1,BorderLayout.NORTH);

this.add(myPanel2,BorderLayout.CENTER);

//上面已经把界面做出来了,接下来监听按钮

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

int n=Integer.valueOf(edit.getText());//得到edit里的值n

int result=0;

for(int i=1;i<=n;i++){

int a=1;

for(int j=1;j<=i;j++){

a*=j;

}

result+=a;

}

area.setText(result+"");

}

});

}

}


下面效果图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-19
s=1;表示总和:
n表示输入框里的值,别忘记做验证。
for(int i = 1 ; i <= n ; i++){
s = s * i ;
}追问

要完整的程序啊,使用了哪些Swing中的组件?
事件处理方法??
帮帮忙 我是菜鸟 马上要交了

第2个回答  2012-11-19
运行结果有点打 就不截图了 还要验证通过麻烦
public class Jc {
/**
* @param args
*/
public static void main(String[] args) {
System.err.println(getJc(100).toString());
}
public static BigDecimal getJc(int count) {
BigDecimal data = new BigDecimal(0);
while(count > 0) {
BigDecimal pdata = new BigDecimal(1);
for(int i = 1 ; i <= count ; i++) {
System.out.println(pdata + "*" + new BigDecimal(i));
pdata = pdata.multiply(new BigDecimal(i));
}
count--;
data = data.add(pdata);
}
return data;
}
}追问

按钮注册监听器的语句,使用了哪些Swing中的组件?事件处理方法??
帮帮忙 我是菜鸟 马上要交了请完善后立马采纳并加200分,速度

第3个回答  2012-11-20
很简单,JLABEL,JFRAME,JBUTTON,JTEXTFIELD在加上上面的
算法
第4个回答  2012-11-19
你是要计算算法么?追问

我要完整的程序,最好附运行结果图,再加100分

追答

public int sumI(Integer i,Integer j){
j=j-1;
i=i*j;

if(j!=1){
i=sumI(i,j);
}
return i;

}

这个是算法方法,我不用swing,所以不能给你写出来了
传入的两个值就是你题目中的N,都是N
比如10的就都写10
但是100的阶乘太大了,59是最大的了,再大就算不了了