—————话不多说,直接放代码!!—————
import javax
.swing
.*
;
import java
.awt
.*
;
import java
.awt
.event
.ActionEvent
;
import java
.awt
.event
.ActionListener
;
public class SWING_Experiment_Factorial {
public static void main(String
[] args
) {
JFrame jf
= new JFrame("大数阶乘");
jf
.setBounds(300,100,400,200);
jf
.setLayout(new BorderLayout());
JPanel jPanel1
= new JPanel(new BorderLayout());
JTextField jt1
= new JTextField("请输入数字",20);
JButton jb
= new JButton("计算阶乘");
JLabel jl
= new JLabel("结果为:");
jPanel1
.add(jb
,BorderLayout
.SOUTH
);
jPanel1
.add(jt1
,BorderLayout
.CENTER
);
jf
.add(jPanel1
,BorderLayout
.NORTH
);
jf
.add(jl
,BorderLayout
.CENTER
);
jb
.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e
) {
jl
.setText("结果为:"+ chen(Integer
.parseInt(jt1
.getText())));
}
});
jf
.setVisible(true);
jf
.setDefaultCloseOperation(JFrame
.EXIT_ON_CLOSE
);
}
private static String
chen(int num
){
int []data
= new int[100];
int t
= 0;
int Op
= 0;
int p
= 1;
int m
= 0;
int r
= 1;
String results
= "";
data
[0] = 1;
for (int i
= 2;i
<= num
;i
++){
for (int n
= 0;n
< p
;n
++){
data
[n
] = (data
[n
] * i
) + m
;
m
= 0;
if (data
[n
] >= 10){
m
= data
[n
] / 10;
data
[n
] %= 10;
p
++;
}
if (r
< p
)
r
= p
;
}
p
= r
;
}
for (int q
= r
;q
>= 0;q
--) {
if (data
[q
] != 0){
t
= 1;
if (Op
< t
)
Op
= t
;
}
if (Op
== 1){
results
= results
+data
[q
];
}
}
return results
;
}
}
这是第一个Swing编程自己实现的项目,所以做的很简陋,希望大家多多斧正!
转载请注明原文地址: https://mac.8miu.com/read-510154.html