1.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

import java.sql.SQLOutput;
import java.util.Scanner;/*** 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一* 对兔子,假如兔子都不死,问每个月的兔子总数为多少?** 解题思路:1月--1对  2月--1对  3月--2对 4月--3对 5月--5对 6月--8对 7月--13对* 由此可得规律从第三月开始,数量都是前两个月的和,即3月等于1月加2月* 4月等于3月加2月  5月等于4月加3月 .......*/
public class Test01 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);   // 创建Scanner对象来接收键盘输入的数据System.out.println("请输入你要计算的月数:");int num = scanner.nextInt();   // 将键盘输入的信息扫描为intif (num == 1) {  // 如果为1月的时候 直接打印出System.out.println(num + "月的兔子是" + num + "对" + "," + "总数是" + num * 2);return;} else if (num == 2) { // 如果为2月的时候 直接打印出System.out.println(num + "月的兔子是" + (num - 1) + "对" + "," + "总数是" + (num - 1) * 2);return;}int[] list = new int[num];  // 定义一个动态的数组,用来存储list[0] = list[1] = 1;   // 因为1月和2月都是1对 所以直接赋值1for (int i = 2; i < num; i++) {  // 从2开始遍历 也就是3月开始遍历添加list[i] = list[i - 1] + list[i - 2];  // 从上方解题思路可得的计算System.out.println((i + 1) + "月的兔子是" + list[i] + "对" + "," + "总数是" + 2 * list[i]);}}
}
以下为打印结果:
请输入你要计算的月数:
12
3月的兔子是2对,总数是4
4月的兔子是3对,总数是6
5月的兔子是5对,总数是10
6月的兔子是8对,总数是16
7月的兔子是13对,总数是26
8月的兔子是21对,总数是42
9月的兔子是34对,总数是68
10月的兔子是55对,总数是110
11月的兔子是89对,总数是178
12月的兔子是144对,总数是288

2.判断101-200之间有多少个素数,并输出所有素数。

/*** 判断101-200之间有多少个素数,并输出所有素数。** 解题思路:素数又叫质数,就是除了1和它本身之外没有整数能被它整除的数。* 先定义一个for循环遍历101 - 200 然后再定义for循环用来做除数* 判断i 能不能整除 j*/
public class Test02 {public static void main(String[] args) {int num = 0;    // 用来累加素数个数for (int i = 101; i < 200; i++) {boolean b = false;for (int j = 2; j < i; j++) {if ( i % j == 0) {  // 如果为true 即i能整除jb = false; // b的值还是falsebreak;  // 到这里结束当前i的循环} else { // 如果不能整除b = true;  // 重新赋值为true}}if (b) { // 当b为true时num++; // 素数个数加1System.out.println(i+ "\t"); // 打印当前i 即素数}}System.out.println(num);  // 打印素数的总数}
}打印结果:
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 素数的总数是:21

3.打印出100–999所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方

package com.company.practice;/*** 打印出100--999所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:* 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方*/
public class Test03 {public static void main(String[] args) {for (int i = 100; i <= 999; i++) {int a = i / 100;  // 拿出当前数的百位int b = (i - a * 100) / 10;  // 拿出当前数的十位int c = i - a * 100 - b * 10; // 拿出当前数的个位int sum = a * a * a + b * b * b + c * c * c;  // 计算百位 十位 个位 的立方和if (sum == i) {         // 如果sum等于iSystem.out.println(sum);  // 打印出100 -- 999 的所有水仙花数}}}
}打印结果:
153
370
371
407

4.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

package com.company.practice;import java.util.Scanner;/*** 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数** 解题思路:先将字符串转换为一个字符串数组,然后遍历判断*/
public class Test04 {public static void main(String[] args) {int english = 0;    // 文字母个数int space = 0;      // 空格键个数int num = 0;        // 数字个数int other = 0;      // 其他字符个数Scanner scanner = new Scanner(System.in);  // 创建Scanner对象来接收键盘输入的数据System.out.println("请输入任意字符:");String str = scanner.nextLine();        // nextLine()方法返回的是输入回车之前的所有字符。char[] chars = str.toCharArray();       // 将字符串对象中的字符转换为一个字符数组for (int i = 0; i < chars.length; i++) {if (Character.isLowerCase(chars[i])){  // 遍历判断数组中的对应下标元素是否为字母english++;} else if (Character.isDigit(chars[i])) {  // 遍历判断数组中的对应下标元素是否为数字num++;} else if (Character.isSpaceChar(chars[i])) { // 遍历判断数组中的对应下标元素是否为空格space++;} else {   // 即如果以上都不是 归纳为其他字符other++;}}// 最后打印所有的字符个数System.out.println("字母的个数:" + english);System.out.println("空格的个数:" + space);System.out.println("数字的个数:" + num);System.out.println("其他字符的个数:" + other);}
}打印结果:
请输入任意字符:
jksjo3i2 o'ipsoi2 [ ]o o ]2o  so 4 ] o]4o44498889 783 o]o]oio ]]lks.k [k; j['
字母的个数:30
空格的个数:15
数字的个数:17
其他字符的个数:15

5.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加), 几个数相加由键盘控制

package com.company.practice;import java.util.Scanner;/*** 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),* 几个数相加由键盘控制*/
public class Test05 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入要加的数:");int addNum = scanner.nextInt();System.out.println("请输入要想加的次数:");int count = scanner.nextInt();int sum = 0;   // 累计值int step = 0;  // 每次加后的数值for (int i = 1; i <= count; i++) {step = step * 10 + addNum;   // 每加一次的值sum += step;   // 累加的值System.out.println(sum);}}
}打印结果:
请输入要加的数:
2
请输入要想加的次数:
5
2
24
246
2468
24690

6.一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数

package com.company.practice;/*** 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完* 数。*/
public class Test06 {public static void main(String[] args) {for (int i = 2; i < 1000; i++) {int sum = 0;for (int j = 1; j <= i / 2; j++) {if (i % j == 0) {    // 找因子 如果i整除j 即就用j去相加sum += j;  // 比方说i为6 那么j就为1 -- i/2(3)}}if (sum == i) {  // 如果所有的j相加等于i 即所有的因子(除本身)System.out.println(i);}}}
}打印结果:
6
28
496

7.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

package com.company.practice;/*** 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多* 少米?第10次反弹多高?*/
public class Test07 {public static void main(String[] args) {double sum = 0;  // 用来累加double height = 100; // 定义原始的高度100 然后累计减去for (int i = 2; i <= 10; i++) {height = height / 2;  // 得出每次落下后弹回的高度sum += height * 2;   // 累计每次抛下后弹回的每次来回经过长度所以乘2}System.out.println(height / 2);  // 打印经过是十次后的高度System.out.println(sum + 100);   // 经过长度 记得是经过9次弹回的来回长度加上第一次落地经过的100}
}打印结果:
0.09765625
299.609375

8.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

package com.company.practice;/*** 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?*/
public class Test08 {public static void main(String[] args) {int a = 0;for (int i = 1; i < 5; i++) {for (int j = 1; j < 5; j++) {for (int k = 1; k < 5; k++) {if (i != j && i != k && j != k) {  // 判断不重复再进行组合System.out.print(i + "" + j + "" + k + "");System.out.print("\t");a++;  // 每次组成一次且没重复时加1}}}System.out.println();}System.out.println(a);}
}打印结果:
123 124 132 134 142 143
213 214 231 234 241 243
312 314 321 324 341 342
412 413 421 423 431 432
24

9.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

package com.company.practice;/*** 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?*/
public class Test10 {public static void main(String[] args) {for (int i = 1; i < 10000; i++){  // 例如计算10000以内for (int j = 1; j < 1000; j++){if (j * j == i + 100) {   // 判断当加上100相等时再进行以下循环for (int k = 1; k < 1000; k++){if (k * k == i + 100 + 168){  // 当以上都符合是再打印System.out.println(i);}}}}}}
}打印结果:
21
261
1581

10.输入某年某月某日,判断这一天是这一年的第几天?

package com.company.practice;import java.util.Scanner;/*** 输入某年某月某日,判断这一天是这一年的第几天?*/
public class Test11 {public static void main(String[] args) {int[] list = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};  // 先将一年的月份日子定下来Scanner scanner = new Scanner(System.in);System.out.println("请输入年份:");int year = scanner.nextInt();Scanner scanner1 = new Scanner(System.in);System.out.println("请输入月份:");int month = scanner1.nextInt();Scanner scanner2 = new Scanner(System.in);System.out.println("请输入日期:");int date = scanner2.nextInt();if (month < 1 || month > 12){  // 当输入的月份不合法时System.out.println("你输入的格式不合法!!!!");return;}int sum = 0;   // 计数if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){  // 判断是否时闰年,因为闰年的2月有29天list[2] = 29; // 即为润年的时候,2月重新赋值为29天if (month == 2){  // 判断如果你输入的为2月时,输入的天数不能超出29天 不能低于1天if (date > 29 || date < 1) {System.out.println("你输入的不合法!!!");return;}}}else {   // 当不为闰年的时候if (month == 2){if (date > 28 || date < 1){  // 判断如果你输入的为2月时,输入的天数不能超出28天 不能低于1天System.out.println("你输入的不合法!!!");return;}}}// 判断如果输入的为有31天的月份的时候,不能大于31天 小于1天if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){if (date > 31 || date < 1){System.out.println("你输入的不合法!!!");return;}}else { // 或者就为只有30天的月份 不能大于30天 小于1天if (date > 30 || date < 1){System.out.println("你输入的不合法!!!");return;}}for (int i = 1; i < month; i++){   // 因为输入的月份为不能确定是不是数组里的满月sum = sum + list[i];  // 所以要遍历输入月份少一,然后再去加上输入的天数}int num = sum + date;  // 即为输入的月份 -1 遍历相加再加上输入的天数System.out.println("这是" + year + "年的第" + num + "天");}
}打印结果:
请输入年份:
2020
请输入月份:
2
请输入日期:
29
这是2020年的第60天

11.输入三个整数x,y,z,请把这三个数由小到大输出。

package com.company.practice;import java.util.Scanner;/*** 输入三个整数x,y,z,请把这三个数由小到大输出。*/
public class Test12 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入x:");int x = scanner.nextInt();Scanner scanner1 = new Scanner(System.in);System.out.println("请输入y:");int y = scanner.nextInt();Scanner scanner2 = new Scanner(System.in);System.out.println("请输入z:");int z = scanner.nextInt();if (x > y && x > z){  // 先把x最大的两种情况打印出来if (y > z){  // 当y大于z时System.out.println(z + "\t" + y + "\t" + x + "\t");}else{System.out.println(y + "\t" + z + "\t" + x + "\t");}}if (y > x && y > z){  // 同理if (x > z){System.out.println(z + "\t" + x + "\t" + y + "\t");}else {System.out.println(x + "\t" + z + "\t" + y + "\t");}}if (z > x && z > y) {  // 同理if (x > y){System.out.println(y + "\t" + x + "\t" + z + "\t");}else{System.out.println(x + "\t" + y + "\t" + z + "\t");}}}
}打印结果:
请输入x:
20
请输入y:
36
请输入z:
39
20  36  39  

12.输出9*9口诀

package com.company.practice;/*** 输出9*9口诀*/
public class Test13 {public static void main(String[] args) {for (int i = 1; i < 10; i++){   // 1 -- 9for (int j = 1; j < i + 1; j++){  // 1 -- i// 当i为1时,即1 * 1 = 1// 当i为2时,即2 * 1 = 2, 2 * 2 = 4// 所以i * j 换成j * i 即1 * 2 = 2, 2 * 2 = 4System.out.print((j +  "*" +  i + "=" + j*i) + "\t");  // 注意这里不是println}System.out.println();  // 每打完一个循环换行}}
}打印结果:
1*1=1
1*2=2  2*2=4
1*3=3  2*3=6  3*3=9
1*4=4  2*4=8  3*4=12 4*4=16
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

13.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩 下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

package com.company.practice;/*** 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩* 下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下* 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。*/
public class Test14 {public static void main(String[] args) {int a = 1;  // 第10天剩一个for (int i = 0; i < 9; i++){  // 循环9天a = (a + 1) * 2;   // 因为吃一半还要再吃一个即a + 1 再 * 2}System.out.print("第一天摘了:" + a);// 这猴子真能吃,第一天吃700多个还没吃饱,还要再吃一个}
}打印结果:
第一天摘了:1534

14.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向 队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

package com.company.practice;/*** 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向* 队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。*/
public class Test15 {public static void main(String[] args) {for (char a = 'x'; a <= 'z'; a++){  // 即循环x y z三个字符for (char b = 'x'; b <= 'z'; b++){if (a != b){   // 不能重复for (char c = 'x'; c <= 'z'; c++){if (b != c && a != c){    // 不能重复if (a != 'x' && c != 'x' && c != 'z'){  // 因为a不跟x比 c不跟x z比System.out.println(">>>>>>>>>>>>>");System.out.println("a与" + a + "比赛");System.out.println("b与" + b + "比赛");System.out.println("c与" + c + "比赛");}}}}}}}
}打印结果:
>>>>>>>>>>>>>
a与z比赛
b与x比赛
c与y比赛

15.打印出如下图案(菱形)

package com.company.practice;
/*** 打印出如下图案(菱形)*     **    ****   ******  ********   ******    ****     **/
public class Test16 {public static void main(String[] args) {for (int i = 1; i <= 4; i++){       // 先把上面的4层打印了for (int j = 1; j <= 4 - i; j++){System.out.print(" ");  // 打印前面的空格}for (int k = 1; k <= 2*i-1; k++){System.out.print("*");  // 打印完当前循环空格后打印 *}System.out.println();  // 记得每打印完一行的 * 换行}for (int x = 3; x > 0; x--){   // 再倒叙打印for (int y = 1; y <= 4 - x; y++){System.out.print(" ");}for (int z = 1; z <= 2*x-1; z++){System.out.print("*");}System.out.println();}}
}打印结果:*********
****************

16.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

package com.company.practice;/*** 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。** 解题思路:先找出规律,这个分子等于上一个分数的分子加分母,分母等于前一个的分子。但是这里我为了好计算* 用的另一个规律,即分母等于分子减去上一个分母(2/1 3/2  即3 = 1 + 2  2 = 3 - 1 )*/
public class Test17 {public static void main(String[] args) {double molecule = 2;   // 先把第一个的分子赋值double denominator = 1;  //先把第一个的分母赋值double sum = 0;  // 计算总数的for (int i = 0; i < 20; i++){sum += molecule / denominator;   // 总数的累加molecule = molecule + denominator;denominator = molecule-denominator;}System.out.println(sum);}
}打印结果:
32.66026079864164

17.利用递归方法求5!

package com.company.practice;/*** 利用递归方法求5!*/
public class Test18 {public static void main(String[] args) {System.out.println(recursion(5));  // 传值 5}public static int recursion(int n){if (n == 1){   // 加上一个终止条件return 1;}else {return recursion(n - 1) * n;  // 自己调用自己  即递归}}
}打印结果:
120

18.求1+2!+3!+…+20!的和

package com.company.practice;/*** 求1+2!+3!+...+20!的和*/
public class Test19 {public static void main(String[] args) {long num = 1L;    // 定义起始1 因为数据后面肯定会大于int的取值范围 所以用longlong sum = 0L;for (int i = 1; i <= 20; i++){num = i * num;sum = sum + num;}System.out.println(sum);}
}打印结果:
2561327494111820313

19.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

package com.company.practice;/*** 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问* 第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个* 人多大?*/
public class Test20 {public static void main(String[] args) {int five = 0;int one = 10;  // 第一个人10岁for (int i = 1; i <= 4; i++){  // 循环4次one += 2;  // 每次都加2即为上一个人的岁数five = one;}System.out.println(five);}
}
打印结果:
18

20.给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

package com.company.practice;import sun.awt.LightweightFrame;import javax.swing.plaf.synth.SynthLookAndFeel;
import java.util.Scanner;/*** 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。*/
public class Test21 {public static void main(String[] args) {//         第一种解法(笨方法)Scanner scanner = new Scanner(System.in);System.out.println("请输入一个不多于5位的正整数:");int a = scanner.nextInt();int x = a/10000;int y = a%10000/1000;int z = a%1000/100;int i = a%100/10;int j = a%10;if (x != 0) {System.out.println("为5位数" + "逆序为:" + j + i + z + y + x);} else if (y != 0) {System.out.println("为4位数" + "逆序为:" + j + i + z + y);} else if (z != 0) {System.out.println("为3位数" + "逆序为:" + j + i + z);}else if (i != 0) {System.out.println("为2位数" + "逆序为:" + j + i);}else {System.out.println("为1位数" + "逆序为:" + j);}// 第二种解法Scanner scanner1 = new Scanner(System.in);System.out.println("请输入一个不多于5位的正整数:");int num = scanner1.nextInt();String s = String.valueOf(num);  // 将int类型 num转换位字符串System.out.println("为" + s.length() + "位数");  // 打印其长度即可知几位数char[] chars = s.toCharArray();  // 将其转为字符数组System.out.print("逆序为:");for (int k = s.length() - 1; k >= 0; k--){  // 倒叙打印 记得要长度减1,因为不可超出索引System.out.print(chars[k]);}}
}打印结果:
请输入一个不多于5位的正整数:
1234
为4位数逆序为:4321
请输入一个不多于5位的正整数:
56789
为5位数逆序为:98765

21.一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

package com.company.practice;import java.util.Scanner;/*** 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。*/
public class Test22 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个5位数:");int a = scanner.nextInt();String s = String.valueOf(a);char[] chars = s.toCharArray();if ((chars[4] == chars[0]) && (chars[3] == chars[1])){  // 判断个万位 十千位 是否相同System.out.println(a + ":这个数是回文数");}else {System.out.println(a + ":这个数不是回文数");}}
}打印结果:
请输入一个5位数:
12321
12321:这个数是回文数

22.求100之内的素数

package com.company.practice;/*** 求100之内的素数*/
public class Test23 {public static void main(String[] args) {int a = 0;for (int i = 2; i <= 100; i++){boolean b = true;  // 因为2位素数,所以默认初始为truefor (int j = 2; j < i; j++){if (i % j == 0){  // 当能整除时,将b改为falseb = false;break;} else {b = true;  // 否则不变,b还是true}}if (b){  // 如果b为true,即打印素数a++;System.out.print(i + "\t");if (a%8 == 0) {System.out.println();}}}}
}打印结果:
2   3   5   7   11  13  17  19
23  29  31  37  41  43  47  53
59  61  67  71  73  79  83  89
97  

23.对10个数进行排序

package com.company.practice;import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;/*** 对10个数进行排序*/
public class Test24 {public static void main(String[] args) {// 方法1Scanner scanner = new Scanner(System.in);System.out.println("请输入10个数:");int[] a = new int[10];for (int i = 0; i < 10; i++){a[i] = scanner.nextInt();}Arrays.sort(a);   // 采用数组的Arrays.sort方法直接进行排序for (int s:a){System.out.println(s);}// 这里再写一个使用排序算法的解法 选择排序for (int j = 0; j < a.length - 1; j++){for (int k = j + 1; k < a.length; k++){if (a[j] > a[k]){int b = a[j];a[j] = a[k];a[k] = b;}}}System.out.println("选择排序:");for ( int z = 0; z < 10; z++){System.out.println(a[z]);}}}打印结果:
请输入10个数:
12
10
22
8
5
3
6
18
15
4
3   4   5   6   8   10  12  15  18  22
选择排序:
3   4   5   6   8   10  12  15  18  22

24.求一个3*3矩阵对角线元素之和

package com.company.practice;import java.util.Scanner;/*** 求一个3*3矩阵对角线元素之和*/
public class Test25 {public static void main(String[] args) {int[][] a = new int[3][3];   // 定义一个二维数字组System.out.println("请输入9个数字:");Scanner scanner = new Scanner(System.in);for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){a[i][j] = scanner.nextInt();}}System.out.println("输出二维数组:");for (int k = 0; k < 3; k++){for(int l = 0; l < 3; l++){System.out.print(a[k][l] + "\t");}System.out.println();}System.out.println("计算:");int sum = 0;for (int x = 0; x < 3; x++){for (int y = 0; y < 3; y++){if ((x == y) || (x + y == 2)) {  //从二维数组找规律 可得知sum = sum + a[x][y];}}}System.out.println(sum);}
}打印结果:
请输入9个数字:
1
2
3
4
5
6
7
8
9
输出二维数组:
1   2   3
4   5   6
7   8   9
计算:
25

java基础练习题目相关推荐

  1. Java基础简单题目练习

    一.回文数判断 1.通过获取所输入整数的各个位数上的值来判断是否为回文数. a.代码如下: import java.util.Scanner; public class Test { public s ...

  2. JAVA基础面试题目

    精选30道Java笔试题解答 http://www.cnblogs.com/lanxuezaipiao/p/3371224.html 经典的Java基础面试题集锦 http://www.codeceo ...

  3. Java基础编程题目——利用公式求e^x的近似值

    利用下式求 ex 的近似值: ex = 1 + x/1! + x2/2! + x3/3! + - + xn/n! + - 输出 x 为 0.2 ~ 1.0 之间步长为 0.2 的所有 ex 值 (计算 ...

  4. Java基础---“方法”题目练习

    1.写一个方法add,接受两个整数作为参数,返回这两个整数的和:在main方法中调用并打印.package com.DaYu;import java.util.Scanner;public class ...

  5. JAVA基础之题目练习

    0x01 编写类A01,定义方法max,实现求某个double数组的最大值,并返回Homework01.java public class Homework01 {public static void ...

  6. Java基础编程题目——判断输入是否为十六进制数,若不是则抛出异常

    从键盘输入一个十六进制数,将其转换为十进制输出.如果输入的不是一个有效的十六进制数则抛出异常. import java.util.Scanner;public class Number {public ...

  7. Java基础编程题目——输出数字三角形

    输入一个数字 n(2~9)输出数字三角形 import java.util.Scanner;public class SanJiao {public static void main(String[] ...

  8. Java基础编程题目——定义一个比较两个数大小的方法

    编写一个方法判断两个数的大小,并返回较大的值 import java.util.Scanner;public class Max {public static void main(String[] a ...

  9. Java基础编程题目——编写一个简单的银行账户类

    创建简单的银行账户类,包括开户人.账号和存款余额三个属性,以及查询余额.存款.取款等方法.创建两个账户验证类的设计. public class Banks {public static void ma ...

最新文章

  1. 十大算法,描述+代码+演示+分析+改进(赶紧收藏!)
  2. Asp.net Mvc Enum 扩展
  3. rest-framework 解析器
  4. fir滤波器c++程序_电气信息类专业课程之matlab系统仿真 第三章 滤波器的种类(1)...
  5. 如何实现文章中文字的打字效果
  6. 【已解决】[Error] reference to ‘min‘ is ambiguous
  7. 8086加法指令ADD
  8. tornado的异步效果
  9. 从AI打王者荣耀到自动驾驶,高通一口气公布了5G+AI未来的无数种可能
  10. Unity跨iOS、Android平台使用protobuf-net的方法
  11. Leetcode 刷题笔记(三十) ——动态规划篇之子序列问题:回文
  12. android 傅里叶变换_Android连载38访问联系人
  13. 小额现金贷用户群体分析及风控体系搭建
  14. Chrome常用插件和油猴(Tampermonkey)脚本使用及常用脚本分享(网盘)
  15. 极域电子书包课堂管理系统_朝阳群众说小康 | 从黑板课本到VR互动课堂、电子书包,朝阳的课堂如此有趣!...
  16. DNS、NS、DDNS
  17. useSSL=false or true如何抉择
  18. 六十星系之46廉贞独坐寅申
  19. Android 10.0 SystemUI修改状态栏电池图标样式为横屏显示
  20. 10周拿下腾讯数据分析师认证

热门文章

  1. CAPEX与OPEX
  2. 《超越需求:敏捷思维模式下的分析》—第1章 1.2节交付价值
  3. 博为峰Java技术文章 ——JavaSE Swing FlowLayout布局管理器I
  4. 【原创】HP 安装 depot (以mysql为例)
  5. Poj 1151-Atlantis 矩形切割
  6. 导入自定义模块model
  7. 样条之埃尔米特(Hermite)插值函数
  8. VS2010水晶报表的添加与使用
  9. 北大青鸟口碑好才真的好
  10. yii框架学习(五)get、post请求如何接收请求参数