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是最大的了,再大就算不了了

java中怎么实现阶乘,如计算1~100的阶乘
int result = 1;for (int i = 1; i <= 100; i++) { result *= i;} System.out.println(result);} } 输出结果为0,因为int无法保存下100的阶乘的结果,100的阶乘的长度至少大于50位,也要大于long,double 二.使用BigInteger大容量运算类 view plaincopy to clipboardprint?import java.math...

求java高手指导下面这个求1到100阶乘的和的程序哪出错了?新手,感谢...
把int sum=1;写到第一个for里面就可以 算阶乘的话用递归方法比较好。public static void main(String[] args) { int product=0;for(int i=1;i<=100;i++){ product+=factorial(i);} System.out.println("product=" + product);} public static int factorial(int n) { int product=0;i...

1-100阶乘之和(java程序)
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(...

1!+2!+3!+…100!的阶层求和,用JAVA编程怎么编写出来,高手指点下,谢谢了...
我编写的是 1-10 的阶乘求和 ,如果是 1-100 的话 还要解决科学计数的问题(解决办法是使用字符串,具体的你可以从网上搜下)public class JieCheng { public static void main(String[] args){ int sum = 0;for(int i=1;i<=10;i++){ int m = 1;System.out.print(m);for(int j =...

编写一个java程序,计算1+2!+3!+4!+……前100项之和
public class 阶乘和 { public static void main(String[] args) { int ji=1;int sum =0;for(int i=1;i<=10;i++) { ji=ji*i;sum = sum+ji;System.out.println(ji);} System.out.println("和为:"+sum);} } 这是小于10 的,他的和为4037913 ,所以100 你得改数据类型,太...

[急!]java 求100阶乘各位数的和 已有答案,求解释!
{ big = big.multiply(new BigDecimal(i++)); \/\/每次都用i的阶乘的结果取乘以i+1,得到i+1 \/\/的阶乘,比如:i=1时, \/\/big=1*2 时, big=1*2*3,最后得到100的阶乘 } String str = big.toString(); \/\/把100的阶乘转换成字符串 System.out.println("Result: " + ...

用do while循环编程求1到100阶乘的和
public static void main(String[] args){ JieCheng jc= new JieCheng();jc.go();} public void go(){ long sum=0;\/\/定义阶乘总和 long temp=1;\/\/定义存放阶乘的变量 int i=1;do{ temp=i*temp;sum=sum+temp;i++;}while(i<=100);System.out.println("100以内的阶乘总和是"+sum);}...

用java语言求100的阶乘
100的阶乘要用bigdecimal才可以 import java.math.BigDecimal;public class Information { public static void main(String[] args) { BigDecimal bg = new BigDecimal(1L);int i = 1;while(i <= 100){ bg = bg.multiply(new BigDecimal(i++));} System.out.println(bg.toString());} } ...

求Java写的100的阶乘
100的阶乘int是存不了的,要用大数类:import java.math.BigDecimal;public class Test { public static void main(String args[]){ BigDecimal result= new BigDecimal(1);for(int i=1;i<=100;i++){ BigDecimal i_value= new BigDecimal(i);result = result.multiply(i_value);} System.out...

java求1到N的阶乘的和,N等于一百,初学JAVA,求程序代码
public static void main (String[] args) { double sum=0,sumt,i,j;for(i=1;i<=100;i++){ for(j=1,sumt=1;j<=i;j++){ sumt*=j;} sum+=sumt;System.out.println(i+" "+sum+" "+sumt);} } } 如果实在要求这么大的阶乘 可以用数组方式解决 给你贴段代码 以前网上某位写...

相似回答