點擊上方“Coder編程”,選擇“置頂公衆號”
技術文章第一時間送達!
1.編寫一個Java程序實現多線程,在線程中輸出線程的名字,隔300毫秒輸出一次,共輸出20次。
// programme name TestThread;
// 聲明一個子線程類Threaddemo;
class ThreadDemo extends Thread {
public ThreadDemo(String str) {
super(str);
}
public void run() {
for(int i=0;i<20;i++){
System.out.print(“ ”+this.getName());
try {
Sleep(300);
}catch(InterruptedException e){
System.out.println(e.getMessage());
return;
}
}
System.out.println(“ /end”);
}
}
public class TestThread {
public static void main( String args[] ) {
ThreadDemo thread1=new ThreadDemo(“T1”);
ThreadDemo thread2=new ThreadDemo(“T2”);
ThreadDemo thread3=new ThreadDemo(“T3”);
thread1.start();
thread2.start();
thread3.start();
}
}
2.編寫程序,在屏幕上顯示帶標題的窗口,並添加一個按鈕。當用戶單擊按鈕時,結束程序。(窗體編程)
// Programme Name ButtonEventDemo.java
import javax.swing.*;
import java.awt.event.*;
public class ButtonEventDemo extends JPanel implements ActionListener{
protected JButton b1; //聲明一個按鈕對象
public ButtonEventDemo() { //構造方法
ImageIcon ButtonIcon = new ImageIcon("images/green.png"); //創建按鈕的圖標對象
b1 = new JButton("退出按鈕", ButtonIcon); //生成按鈕對象
b1.setMnemonic(KeyEvent.VK_E); //設置b1的助記符是Alt+E
b1.setToolTipText("這是退出按鈕。"); // 設置按鈕提示條
this.add(b1); //往面板對象中加載按鈕
b1.addActionListener(this); //本類對象註冊爲按鈕的事件監聽器
}
public void actionPerformed(ActionEvent e){ //按鈕事件響應方法
System.exit(0); //按b1則退出主程序
}
private static void createGUI() { //創建窗體
JFrame.setDefaultLookAndFeelDecorated(true); //設置java隱含觀感
JFrame frame = new JFrame("按鈕測試"); //生成應用程序主窗體
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設置關閉時隱含操作
ButtonEventDemo CPane = new ButtonEventDemo(); //生成主類對象--面板
CPane.setOpaque(true); //面板要求不透明
frame.setContentPane(CPane); //設置主類對象爲主窗體的內容面板
frame.pack(); //主窗體緊縮顯示
frame.setVisible(true); //設置主窗體可見
}
public static void main(String[] args) { //將createGUI()列入線程
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createGUI();
}
});
}
}
3. 古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數爲多少?
//這是一個菲波拉契數列問題
public class Test {
public static void main(String[] args) {
System.out.println("第1個月的兔子對數: 1");
System.out.println("第2個月的兔子對數: 1");
int f1 = 1, f2 = 1, f, M = 24;
for (int i = 3; i <= M; i++) {
f = f2;
f2 = f1 + f2;
f1 = f;
System.out.println("第" + i + "個月的兔子對數: " + f2);
}
}
}
4. 判斷101-200之間有多少個素數,並輸出所有素數。程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
public class Test {
public static void main(String[] args) {
int count = 0;
for (int i = 101; i < 200; i += 2) {
boolean b = false;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
b = false;
break;
}
else {
b = true;
}
}
if (b == true) {
count++;
System.out.println(i);
}
}
System.out.println("素數個數是: " + count);
}
}
5. 打印出所有的 "水仙花數 ",所謂 "水仙花數 "是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個 "水仙花數 ",因爲153=1的三次方+5的三次方+3的三次方。
public class Test {
public static void main(String[] args) {
int b1, b2, b3;
for (int m = 101; m < 1000; m++) {
b3 = m / 100;
b2 = m % 100 / 10;
b1 = m % 10;
if ((b3 * b3 * b3 + b2 * b2 * b2 + b1 * b1 * b1) == m) {
System.out.println(m + "是一個水仙花數");
}
}
}
}
6. 將一個正整數分解質因數。例如:輸入90,打印出90=233*5。
程序分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。(2)如果n <> k,但n能被k整除,則應打印出k的值,並用n除以k的商,作爲新的正整數你n,重複執行第一步。(3)如果n不能被k整除,則用k+1作爲k的值,重複執行第一步。
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("請鍵入一個正整數: ");
int n = s.nextInt();
int k = 2;
System.out.print(n + "=");
while (k <= n) {
if (k == n) {
System.out.println(n);
break;
}
else if (n % k == 0) {
System.out.print(k + "*");
n = n / k;
}
else k++;
}
}
}
7. 利用條件運算符的嵌套來完成此題:學習成績> =90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。
import java.util.*;
public class Test {
public static void main(String[] args) {
int x;
char grade;
Scanner s = new Scanner(System.in);
System.out.print("請輸入一個成績: ");
x = s.nextInt();
grade = x >= 90 ? 'A' : x >= 60 ? 'B' : 'C';
System.out.println("等級爲:" + grade);
}
}
8. 輸入兩個正整數m和n,求其最大公約數和最小公倍數。
/**在循環中,只要除數不等於0,用較大數除以較小的數,將小的一個數作爲下一輪循環的大數,取得的餘數作爲下一輪循環的較小的數,
如此循環直到較小的數的值爲0,返回較大的數,此數即爲最大公約數,最小公倍數爲兩數之積除以最大公約數。*/
import java.util.*;
public class Test {
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;
}
}
9. 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
import java.util.*;
public class Test {
public static void main(String[] args) {
int abcCount = 0; //英文字母個數
int spaceCount = 0; //空格鍵個數
int numCount = 0; //數字個數
int otherCount = 0; //其他字符個數
Scanner scan = new Scanner(System.in);//掃描器接受控制檯的輸入信息
System.out.println("輸入一組字符");
String str = scan.nextLine(); //取出控制檯的一行信息,也就是你輸入的信息
char[] ch = str.toCharArray();//把取道的字符串變成一個char數組
for (int i = 0; i < ch.length; i++) {
if (Character.isLetter(ch[i])) {
//判斷是否字母
abcCount++;
} else if (Character.isDigit(ch[i])) {
//判斷是否數字
numCount++;
} else if (Character.isSpaceChar(ch[i])) {
//判斷是否空格鍵
spaceCount++;
} else {
//以上都不是則認爲是其他字符
otherCount++;
}
}
System.out.println("字母個數:" + abcCount);
System.out.println("數字個數:" + numCount);
System.out.println("空格個數:" + spaceCount);
System.out.println("其他字符個數:" + otherCount);
}
}
10. 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。
import java.util.*;
public class Test {
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(sum);
}
}
推薦
文末
歡迎關注個人微信公衆號:Coder編程
歡迎關注Coder編程公衆號,主要分享數據結構與算法、Java相關知識體系、框架知識及原理、Spring全家桶、微服務項目實戰、DevOps實踐之路、每日一篇互聯網大廠面試或筆試題以及PMP項目管理知識等。更多精彩內容正在路上~
新建了一個qq羣:315211365,歡迎大家進羣交流一起學習。謝謝了!也可以介紹給身邊有需要的朋友。文章收錄至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
歡迎關注並star~微信公衆號
我知道你 “在看”