java编程题

  • 格式:doc
  • 大小:32.00 KB
  • 文档页数:3

1·冒泡排序:Import java.util.Scanner;public class Bubble{Public static void main(String[]args){ System.out.println("为m个数排序."); System.out.print("请输入m的值:"); Scanner sca=new Scanner(System.in);int m=sca.nextInt();int i,j,tmp;int[]a=new int[m];System.out.println("请输入m个数:");for(i=0;i<a.length;i++){a[i]=sca.nextInt();}System.out.print("排序前的数:");for(i=0;i<a.length;i++){System.out.print(a[i]+" ");}System.out.println();for(i=0;i<m;i++){for(j=m-1;j>i;j--){if(a[j-1]>a[j]){tmp=a[j];a[j]=a[j-1];a[j-1]=tmp;}}} System.out.print("排序后的数:");for(i=0;i<a.length;i++)System.out.print(a[i]+" ");System.out.println();}}2·完数public class Example2{public static void main(String[] args) { System.out.println("1到100的完数有"); for(int i=1; i<100; i++) {int t = 0;for(int j=1; j<= i/2; j++) {if(i % j == 0) {t = t + j; } }if(t == i) { System.out.print(i + " ");}}}} 3·回数import java.util.*;public class Example3{ public static void main(String[] args){ Scanner s = new Scanner(System.in);int a; do {System.out.print("请输入一个5位正整数:");a = s.nextInt(); }while(a<10000||a>99999);String ss =String.valueOf(a);char[] ch = ss.toCharArray();if(ch[0]==ch[4]&&ch[1]==ch[3]) { System.out.println("这是一个回文数");}else {System.out.println("这不是一个回文数"); } } }4·最大公约数import java.util.*;public class Example1{ public static void main(String[] args){ int a ,b,m;Scanner s = new Scanner(System.in); System.out.print( "键入一个整数:");a = s.nextInt();System.out.print( "再键入一个整数:");b = s.nextInt(); deff cd = new deff();m = cd.deff(a,b); int n = a * b / m; System.out.println("最大公约数: " + m); System.out.println("最小公倍数: " + n);} } class deff{ public int deff(int x, int y) { int t; if(x < y){ t = x; x = y; y = t; } while(y != 0){ if(x == y) return x;else { int k = x % y; x = y; y = k; } }return x;}}5·求s=a+aa+aaa+aaaa+aa...a的值,其中a 是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加)。

几个数相加由键盘控制,从命令行输入。

import java.util.*;public class Sum{ public static void main(String args[]){ long a , b = 0, sum = 0;Scanner s = new Scanner(System.in);System.out.print("输入数字a的值:");a = s.nextInt();System.out.print("输入相加的项数:");int n = s.nextInt();int i = 0;while(i < n){ b = b + a; sum = sum + b; a = a * 10; ++ i; } System.out.println("项数为"+n+"和为:"+sum);}}6·古典问题(斐波拉契数列问题):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生了一对兔子,假如兔子都不死,问每个月的兔子总数为多少?public class rabbit{ public static void main(String[] args){System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f, M=12;for(int i=3; i<=M; i++){ f = f2;f2 = f1 + f2; f1 = f;System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 7·有一分数序列:2/1,3/2 ,5/3 ,8/5 ,13/8 ,21/13....求出这个序列前20项之和。

public class xulie{ public static void main(String[] args){ int x = 2, y = 1, t; double sum = 0;for(int i=1; i<=20; i++){ sum = sum + (double)x / y;t = y; y = x; x = y + t; }System.out.println("前20项相加之和是:" + sum); }}8·字符串"yekmaakkccekymbvb",求出字符串中有多少种字符,以及每个字符的个数? public class CountCharNum {private int num; //统计字符种类变量public CountCharNum(String str){this.num = str.length(); }public int count(String str){int leng = str.length();if(leng == 0){ return num; }else { String a = str.substring(0, 1);int charNum = 1; //统计字符个数变量System.out.print("字符:"+a);for (int i = 1; i < str.length(); i++) {if(a.equals(str.substring(i, i+1))){num--; charNum++; } }System.out.println(" "+charNum);str = str.replace(a, "");count(str); //用递归}return num; }public static void main(String[] args) { String aString = "yekmaakkccekymbvbsf4w"; CountCharNum cc = newCountCharNum(aString);System.out.println("共有字符类型:"+cc.count(aString));} }9·以下程序的界面有一个按钮button、一个文本区textA和一个文本框textF。

程序运行时,在文本区中输入数字序列,单击按钮,则在文本框中显示数字序列的和。

将一个给定字符串反过来输出。

import java.awt.FlowLayout;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import javax.swing.JFrame;import javax.swing.JTextArea;import javax.swing.JButton;import javax.swing.JLabel;class Text_3{ JButton button1=new JButton();JButton button2=new JButton();JButton button3=new JButton();JTextArea textArea1=new JTextArea(1,10);JTextArea textArea2=new JTextArea(1,10);JTextArea textArea3=new JTextArea(1,10);JFrame jf=new JFrame();public void Buld(){ button1.setText("+");button2.setText("=");button3.setText("确认");button3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ int first=Integer.parseInt(textArea1.getText());intsecond=Integer.parseInt(textArea2.getText());int result=first+second;textArea3.setText(Integer.toString(result) );}});}Text_3(){ Buld();jf.setLayout(new FlowLayout());jf.add(textArea1);jf.add(button1);jf.add(textArea2);jf.add(button2);jf.add(textArea3);jf.add(button3);jf.pack();jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXI T_ON_CLOSE); }public static void main(String args[]){ new Text_3(); } }10·计算两个日期相隔天数import java.util.*;public class MyDate{int day;int month;int year; }public MyDate(){}public MyDate(int day,int month,int year) { this.day = day;this.month = month;this.year = year; }public void funtion(MyDate d){ int newDay = d.day;int newMonth = d.month;int newYear = d.year;Calendar c1 = Calendar.getInstance();c1.set(newYear,newMonth,newDay);long n1 = c1.getTimeInMillis();Calendar c2 = Calendar.getInstance();c2.set(year,month,day);long n2 = c2.getTimeInMillis(); System.out.println( "相差天数为:" + Math.abs((n1 - n2)/24/3600000)); }public static void main(String[] args){ MyDate d1 = new MyDate(1,1,2008); MyDate d2 = new MyDate(2,1,2001);d1.funtion(d2); } }。