該篇為Java算法基本功小練習(xí)蛛倦,適合初學(xué)者練手的題债朵。
1.打印九九乘法表。
/**
* 打印九九乘法表
*/
public static void multiplicationTable() {
for (int i = 1; i <= 9; i++) { //用i控制行锄奢,1-9行
for (int j = 1; j <= i; j++) { //用j控制列歼冰,j最大不超過當(dāng)前i
System.out.print(i + "*" + j + "=" + i*j + "\t");
}
System.out.println();
}
}
運(yùn)行結(jié)果:
2.定義一個(gè)二維數(shù)組靡狞,int[2][4],要求是循環(huán)輸入8個(gè)整數(shù)隔嫡,存入到數(shù)組中甸怕,然后輸出這個(gè)數(shù)組中的最大值。
/**
* 定義一個(gè)二維數(shù)組腮恩,int[2][4]梢杭,要求是循環(huán)輸入8個(gè)整數(shù),存入到數(shù)組中秸滴,然后輸出這個(gè)數(shù)組中的最大值武契。
*/
public static void arrayMax() {
Scanner scanner = new Scanner(System.in);
int[][] array = new int[2][4];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < 4; j++) {
System.out.println("請輸入" + i + "行" + j + "列數(shù)字");
array[i][j] = scanner.nextInt(); //獲取輸入數(shù)存在對應(yīng)行列位置
}
}
int max = array[0][0]; //假定第一個(gè)數(shù)最大
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < 4; j++) {
if (array[i][j] > max) { //有更大就替換
max = array[i][j];
}
}
}
System.out.println("最大數(shù)為:" + max);
}
運(yùn)行結(jié)果:
3.定義一個(gè)長度為10的整型數(shù)組,循環(huán)輸入10個(gè)整數(shù)荡含。然后判斷這個(gè)數(shù)組中有幾個(gè)偶數(shù)咒唆,再定義一個(gè)正好能存放這幾個(gè)偶數(shù)的數(shù)組,將上一個(gè)數(shù)組中的所有偶數(shù)復(fù)制過來释液。最后循環(huán)輸出這些偶數(shù)全释。
/**
* 定義一個(gè)長度為10的整型數(shù)組,循環(huán)輸入10個(gè)整數(shù)误债。然后判斷這個(gè)數(shù)組中有幾個(gè)偶數(shù)恨溜,再定義一個(gè)正好能存放這幾個(gè)偶數(shù)的數(shù)組符衔,將上一個(gè)數(shù)組中的所有偶數(shù)復(fù)制過來。最后循環(huán)輸出這些偶數(shù)糟袁。
*/
public static void even() {
int[] array = new int[10];
Scanner scanner = new Scanner(System.in);
int evenCount = 0;
for (int i = 0; i < array.length; i++) {
System.out.println("輸入第" + (i+1) + "整數(shù)");
array[i] = scanner.nextInt();
if (array[i] % 2 == 0) {
evenCount++; //輸入的同時(shí)判斷是否為偶數(shù)
}
}
int[] evenArray = new int[evenCount];
evenCount = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 0) {
evenArray[evenCount] = array[i];
evenCount++; //記錄新偶數(shù)數(shù)組存放個(gè)數(shù)
}
}
System.out.print("所有的偶數(shù)有: ");
for (int i = 0; i < evenCount; i++) {
System.out.print(evenArray[i] + " ");
}
}
運(yùn)行結(jié)果:
4.輸入一個(gè)數(shù)判斷一個(gè)數(shù)是否為質(zhì)數(shù)(只能被1和本身整除的數(shù)叫質(zhì)數(shù))
/**
* 輸入一個(gè)數(shù)判斷一個(gè)數(shù)是否為質(zhì)數(shù)(只能被1和本身整除的數(shù)叫質(zhì)數(shù))
*/
public static void primeNumber() {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入一個(gè)數(shù):");
int num = scanner.nextInt();
int count = 0; //記錄能被整除的數(shù)的個(gè)數(shù)
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
count++;
}
}
if (count < 3) {
System.out.println("這個(gè)數(shù)是質(zhì)數(shù)");
}else {
System.out.println("這個(gè)數(shù)不是質(zhì)數(shù)");
}
}
運(yùn)行結(jié)果:
5.定義一個(gè)二維數(shù)組判族,用來記錄3個(gè)學(xué)生的java,c#,sql三門功課的成績,二維數(shù)組的一行記錄一個(gè)人的成績
/**
* 定義一個(gè)二維數(shù)組项戴,用來記錄3個(gè)學(xué)生的java,c#,sql三門功課的成績形帮,二維數(shù)組的一行記錄一個(gè)人的成績,要求循環(huán)輸入周叮,最后輸出格式如下:
* java c# sql
* 第1名學(xué)生 89 79 98
* 第2名學(xué)生 99 80 100
* 第3名學(xué)生 79 99 87
*/
public static void printScore() {
int[][] array = new int[3][3];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < array.length; i++) {
int j = 0;
System.out.println("請輸入第" + (i+1) + "個(gè)學(xué)生java成績:");
array[i][j++] = scanner.nextInt();
System.out.println("請輸入第" + (i+1) + "個(gè)學(xué)生c#成績:");
array[i][j++] = scanner.nextInt();
System.out.println("請輸入第" + (i+1) + "個(gè)學(xué)生sql成績:");
array[i][j++] = scanner.nextInt();
}
System.out.println("java\tc#\tsql");
for (int i = 0; i < array.length; i++) {
System.out.print("第" + (i+1) + "名學(xué)生成績\t");
for (int j = 0; j < 3; j++) {
System.out.print(array[i][j] + "\t");
}
System.out.println();
}
}
6.計(jì)算1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10=?
/**
* 計(jì)算1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10=?
*/
public static void accumulation() {
double sum = 0;
for (int i = 1; i <= 10; i++) {
sum += (double) 1/i;
}
System.out.print(sum);
}
7.從1不斷的累加辩撑,最多加到100,但如果你的累加結(jié)果正好大于1000時(shí)仿耽,要求也結(jié)束這個(gè)循環(huán)合冀。問這個(gè)時(shí)候正好加到了幾。
/**
* 從1不斷的累加项贺,最多加到100君躺,但如果你的累加結(jié)果
* 正好大于1000時(shí),要求也結(jié)束這個(gè)循環(huán)开缎。問這個(gè)時(shí)候正好加
* 到了幾棕叫。
*/
public static void accumulation() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
if (sum > 1000) {
System.out.print("這個(gè)時(shí)候正好加到:" + i);
break;
}
}
}
結(jié)果為:
這個(gè)時(shí)候正好加到:45
8.從1累加到100,但如果要累加的數(shù)據(jù)能被3整除奕删,并且也能被7整數(shù)俺泣,那么就不要累加這個(gè)數(shù)。最后輸出結(jié)果完残。
/**
* 從1累加到100伏钠,但如果要累加的數(shù)據(jù)能被3整除,
* 并且也能被7整數(shù)谨设,那么就不要累加這個(gè)數(shù)熟掂。最后輸出結(jié)果。
*/
public static void accumulation2() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 7 == 0) {
continue;
}
sum += i;
}
System.out.print("總和為:" + sum);
}
結(jié)果為:
總和為:4840
9.打印如下圖形
/**
* 打印圖形
* *
* ***
* *****
* *******
* *********
* ***********
* *************
*/
public static void printStart() {
//總共有7行
for (int i = 0; i < 7; i++) {
int printCount = 1 + 2*i; //每行打印個(gè)數(shù)規(guī)律為1+2*n
for (int j = 0; j < printCount; j++) {
System.out.print("*"); //循環(huán)打印
}
System.out.println(); //換行
}
}
結(jié)果為:
10.打印如下圖形
/**
* *
* ***
* *****
* *******
* *********
* ***********
* *********
* *******
* *****
* ***
* *
*/
public static void printStar2() {
//打印前6行
for (int i = 0; i < 6; i++) {
int printCount = 1 + 2*i; //每行打印個(gè)數(shù)規(guī)律為1+2*n
for (int j = 0; j < printCount; j++) {
System.out.print("*"); //循環(huán)打印
}
System.out.println(); //換行
}
//打印后5行
for (int i = 4; i >= 0; i--) {
int printCount = 1 + 2*i;
for (int j = 0; j < printCount; j++) {
System.out.print("*");
}
System.out.println();
}
}
11.給一個(gè)數(shù)組做反序铝宵。
/**
* 給一個(gè)數(shù)組做反序。
*/
public static void reserseArray() {
//采用數(shù)組對稱依次相互交換值得做法
int[] array = new int[]{13,0,6,42,8,24,9,10};
int start = 0; //低位下標(biāo)
int end = array.length-1; //高位下標(biāo)
for (; start < end; start++) {
int temp = array[start];
array[start] = array[end];
array[end] = temp;
end--; //循環(huán)依次华畏,低位右移鹏秋,高位左移
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + "\t");
}
}
運(yùn)行結(jié)果:
12.求1-100以內(nèi)所有的質(zhì)數(shù)
/**
* 求1-100以內(nèi)所有的質(zhì)數(shù)
*/
public static void getPrimeNumber() {
System.out.print("1-100以內(nèi)的質(zhì)數(shù)有: ");
for (int i = 1; i <= 100; i++) {
int count = 0;
for (int j = 1; j <= i / 2; j++) {
if (i % j == 0) {
count++;
}
}
if (count < 2) {
System.out.print(i + " ");
}
}
}
結(jié)果為:
13.輸入一個(gè)四位數(shù),要求計(jì)算出它的千位亡笑,百位侣夷,十位,個(gè)位仑乌,并且打印出來百拓。
/**
* 輸入一個(gè)四位數(shù)琴锭,要求計(jì)算出它的千位,百位衙传,十位决帖,個(gè)位,并且打印出來蓖捶。
*/
public static void printNum() {
Scanner scanner = new Scanner(System.in);
int num;
do {
System.out.print("請輸入一個(gè)四位數(shù):");
num = scanner.nextInt();
}while (num/1000 < 1);
int rest = num;
int gewei = rest % 10;
rest /= 10;
int shiwei = rest % 10;
rest /= 10;
int baiwei = rest % 10;
rest /= 10;
int qianwei = rest % 10;
System.out.print("個(gè)位" + gewei + " 十位" + shiwei + " 百位" + baiwei + " 千位" + qianwei);
}
結(jié)果為: