读书人

急小程序

发布时间: 2012-01-10 21:26:50 作者: rapoo

急求一个小程序
急求一个小程序:
要求输入一个一百位以上的数字n,求n的e次方再除以d的余数
其中n可以用随机数获取(输入一个种子),e和d是自己输入的数字

有界面的再送100分
界面至少有三个框框,分别输入三个数,有一个按钮用来求值



[解决办法]
public class math2 {
private double n;
private double e;
private double d;

public math2(String str1,String str2,String str3)
{

n=Double.parseDouble(str1);
e=Double.parseDouble(str2);
d=Double.parseDouble(str3);
}
/*
public double get_n()
{
return(this.n);
}
public double get_e()
{
return(this.e);
}
public double get_d()
{
return(this.d);
}
*/
public double act()
{
double r=Math.pow(n,e);
System.out.print(d);
r=r%d;
return(r);


}

public static void main(String [] args)
{
String str1 = JOptionPane.showInputDialog( "enter n: ");
String str2=JOptionPane.showInputDialog( "enter e: ");
String str3=JOptionPane.showInputDialog( "enter d: ");
math2 m=new math2(str1,str2,str3);
double r;
r=m.act();
JOptionPane.showMessageDialog(null, "the result is "+r, "result ",JOptionPane.INFORMATION_MESSAGE);

}


}
不理解你的意思 大概写了一下 LZ参考一下好了
[解决办法]
import java.awt.GridLayout;

public class ModeCalculate extends java.awt.Dialog {

public ModeCalculate(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}

private void initComponents() {
label11 = new java.awt.Label();
textN = new java.awt.TextField();
label12 = new java.awt.Label();
textE = new java.awt.TextField();
label13 = new java.awt.Label();
textD = new java.awt.TextField();
button = new java.awt.Button();
label14 = new java.awt.Label();

addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
label11.setText( "输入n: ");
label12.setText( "输入e: ");
label13.setText( "输入d: ");
button.setLabel( "计算 ");
button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
button3ActionPerformed(evt);
}
});

label14.setText( " ");
this.setLayout(new GridLayout(4, 2));
this.add(label11);
this.add(textN);
this.add(label12);
this.add(textE);
this.add(label13);
this.add(textD);
this.add(button);
this.add(label14);
this.setSize(500,600);
pack();
}

private void button3ActionPerformed(java.awt.event.ActionEvent evt) {
label14.setText( " ");
long n = Long.parseLong(textN.getText());
long d = Long.parseLong(textD.getText());
long e = Long.parseLong(textE.getText());
label14.setText( " "+calculate(n, d, e));
}

private long calculate(long n, long d, long e) {
if (e == 1)
return n%d;
return (n*calculate(n, d, e-1))%d;


}

private void closeDialog(java.awt.event.WindowEvent evt) {
setVisible(false);
dispose();
}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ModeCalculate(new java.awt.Frame(), true).setVisible(true);
}
});
}

private java.awt.Button button;
private java.awt.Label label11;
private java.awt.Label label12;
private java.awt.Label label13;
private java.awt.Label label14;
private java.awt.TextField textN;
private java.awt.TextField textE;
private java.awt.TextField textD;
}

n=9999999999999999
e=1234
d=88888883333
结果:4869171364
都没问题,只是e不能取的太大,太大堆栈就泻了,哈哈

读书人网 >J2SE开发

热点推荐