一道JAVA编程题

考验你的数字意识。完成如下界面,点击开始后出现4个数,找出规律后填入文本框内,查看结果。提示:首先产生一个随机整数,publicvoidgetNumber(){ary[0... 考验你的数字意识。完成如下界面,点击开始后出现4个数,找出规律后填入文本框内,查看结果。
提示:首先产生一个随机整数,
public void getNumber(){
ary[0]=Math.abs(new Random().nextInt()%9); //随机产生一个小于等于9的数
for (int i = 1; i<5; i++) { //从第二个数开始循环产生4个数
ary[i]=ary[i-1]*2+1;
}
}
展开
 我来答
栋鹏涛花奇
2019-11-11 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:824万
展开全部
class
WangTi2
{
public
static
void
main(String[]
args)
{
long
start
=
System.currentTimeMillis();//看一下要运行多长时间
shuanShu();
long
end
=
System.currentTimeMillis();//看一下要运行多长时间
System.out.println("用时"+(end-start));
}
public
static
void
shuanShu()
{
int[]
arr
=
new
int[100];
arr[0]
=
1;
for(int
x=0;x<11213;x++)
//可以把11213改成100验证方法的正确性
{
//2^20=1048576
int
z
=
0;
/*
这个循环是记录乘2的结果
*/
for(int
y
=0;y<arr.length;y++)
{
arr[y]
=
arr[y]<<1;
arr[y]
=
arr[y]
+
z;
if
(arr[y]>9)
{
arr[y]
-=
10;
if(y!=arr.length-1)
z
=
1;
}
else
z
=
0;
}
}
arr[0]--;
//这个给最后一个位减1,这个值不会是负数。
System.out.println("这个数的最后100位是:");
for(int
x=arr.length-1;x>=0;x--)
{
System.out.print(arr[x]);
if(x%3==0&&x!=0)
System.out.print(",");
}
System.out.println();
}
}
思路是有的。定义数组,只存储最后100位。然后不停的乘2,大于9的向上一个数组加1。重复11213次。再把第一个数组减1。这样做是可以的。效率很低。求高人解答。。呵呵。
百度网友388688327
2009-06-28 · TA获得超过1053个赞
知道小有建树答主
回答量:1297
采纳率:0%
帮助的人:954万
展开全部
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
public class Caishuzi extends JFrame implements ActionListener
{
JPanel jp=new JPanel();
JTextField text1=new JTextField();
JTextField text2=new JTextField();
JTextField text3=new JTextField();
JTextField text4=new JTextField();
JTextField text5=new JTextField();
JTextField text6=new JTextField();
JTextField text[]={text1,text2,text3,text4,text5};
JLabel l=new JLabel("请找出规律写出第5个数:");
JLabel label=new JLabel("");
JButton b1=new JButton("刷新");
JButton b2=new JButton("看结果");
JButton b3=new JButton("开始");
public Caishuzi()
{
jp.setLayout(null);
text1.setBounds(10,20,60,20);
text2.setBounds(80,20,60,20);
text3.setBounds(150,20,60,20);
text4.setBounds(220,20,60,20);
text5.setBounds(290,20,60,20);
text5.setVisible(false);
for(int i=0;i<5;i++)
{
text[i].setEditable(false);
}
text6.setBounds(170,60,60,20);
l.setBounds(15,60,160,20);
label.setBounds(10,130,120,20);
b1.setBounds(100,90,80,20);
b2.setBounds(200,90,80,20);
b3.setBounds(240,60,80,20);
jp.add(text1);
jp.add(text2);
jp.add(text3);
jp.add(text4);
jp.add(text5);
jp.add(text6);
jp.add(b1);
jp.add(b2);
jp.add(b3);
jp.add(l);
jp.add(label);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);

this.add(jp);
this.setBounds(100,100,370,200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getNumber();
}
public void actionPerformed(ActionEvent e)
{
String s1=text[4].getText();
String s2=text6.getText();
if(e.getSource()==b1)
{
getNumber();
text[4].setVisible(false);
}
else if(e.getSource()==b2)
{
text[4].setVisible(true);
}
else if(e.getSource()==b3)
{
if(s1.equals(s2))
{
label.setText("You are right!!");
}
else
{
label.setText("You are wrong!!");
}
}
}
public void getNumber()
{
int temp=Math.abs(new Random().nextInt()%9);
text[0].setText(temp+"");
for(int i=1;i<5;i++)
{
temp=temp*2+1;
text[i].setText(temp+"");
}
}
public static void main(String[] args)
{
new Caishuzi();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
撒白风05F
2009-06-28 · TA获得超过1010个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:502万
展开全部
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class MyDemo extends JFrame implements ActionListener {
JTextField jtxt;
JLabel[] jl;
JButton jb, jb2;
public MyDemo() {
this.setLayout(new FlowLayout());
jl = new JLabel[5];
for (int i = 0; i < 5; i++) {
jl[i] = new JLabel();
this.add(jl[i]);
}
jb = new JButton("开始");
jb2 = new JButton("看结果");
jb2.addActionListener(this);
jb.addActionListener(this);
jtxt = new JTextField(10);
this.add(jtxt);
this.add(jb);
this.add(jb2);
this.setSize(500, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getNumber();
jl[4].setVisible(false);
this.setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("开始")) {
getNumber();
jl[4].setVisible(false);
}else{
jl[4].setVisible(true);
}
}

public void getNumber() {
int firstNo = Math.abs(new Random().nextInt() % 9); // 随机产生一个小于等于9的数
jl[0].setText(firstNo + "");
for (int i = 1; i < 5; i++) { // 从第二个数开始循环产生4个数
firstNo = firstNo * 2 + 1;
jl[i].setText(firstNo + "");
}
}

public static void main(String[] arg) {
new MyDemo();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式