目录

1. 从控制台输入一个打印的行数,打印如下形状

2. 九九乘法表

3. 输入一个数判断是否质数

4. 请使用循环打印如下图案

5. 输入三边的长度,求三角形的面积和周长(海伦公式)

6. 请输入一个数,判断这个数是偶数还是奇数。

7. 循环输入某同学S1结业考试的5门课成绩,并计算平均分

8. 请从控制台输入一个数,是质数(素数)还是合数

9. 求1~100之间不能被3整除的数之和

10. 根据用户输入的数,打印一个表格

11. 请使用循环完成如下图案的打印

12. 请在控制台上输入两个数,并且输入一个符号(+-*/%),使用switch语句

13. 100~1000返回内,能补5和6整除的数

14. 输入一个年份,判断该年是否是闰年

15. 健康计划:用户输入身高(m),体重(kg),计算BMI,并判断

16. 一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几?

17. 在400-500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少?

18. 有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?

19. 编程求一个四位自然数ABCD,它乘以A后变成DCBA

20. 编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和

21. 某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这个自然数

22. 有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来

23. 一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.

24. 把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已

25. 验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除

26. 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数"

27. 求水仙花数。ABC  = a^3+b^3+c^3

28. 求 a+aa+aaa+.......+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也要可以指定

29. 求 2/1+3/2+5/3+8/5+13/8.....前20项之和?

30. 求第n项的斐波那契数列的值,f(n) = f(n-1) + f(n-2)

31. 一个人开始上楼梯,假设这个人每一次只能上一个或者两个台阶,当他到达第n个台阶时,问:共有多少种走法?

32. 不死兔子:小明今年高考,考了700,父母,给他买了一对刚刚出生小兔子,四个月后成长为成年兔子,成年后,每过一个月,假设生出一对新的小兔子,问:第n月,小明家共有多少对兔子。


1. 从控制台输入一个打印的行数,打印如下形状

*         1
**        2
***       3
****      4
*****     5
import java.util.Scanner;public class PrintStar1 {public static void main(String[] args) {/**            1**         2***        3****       4*****      5*/Scanner scanner = new Scanner(System.in);System.out.print("请输入要打印的行数:");int line = scanner.nextInt();for (int i = 0; i < line; i++) {for (int j = 0; j <= i; j++) {System.out.print("*");}System.out.println();}}
}

结果:

2. 九九乘法表

public class NineNine {public static void main(String[] args) {for (int i = 1; i < 10; i++) {for (int j = 1; j <= i; j++) {System.out.print(i + "*" + j + "=" + i * j + "\t");}System.out.println();}}
}

结果:

3. 输入一个数判断是否质数

import java.util.Scanner;public class PrimeNumber {public static void main(String[] args) {
//        输入一个数判断是否质数Scanner scan = new Scanner(System.in);System.out.print("请输入一个整数:");int num = scan.nextInt();int i;for (i = 2; i < num; i++) {if (num % i == 0){System.out.println(num + "不是质数!");break;}}if (i == num){System.out.println(num + "是质数!");}}
}

结果:

4. 请使用循环打印如下图案

*
   ***
  *****
 *******
*********

public class PrintStar2 {public static void main(String[] args) {/*空格     **              4       1***             3       3*****            2       5*******           1       7*********          0       9*/for (int i = 1; i <= 5; i++) {for (int j = 1; j <= 5 - i; j++) {System.out.print(" ");}for (int k = 1; k <= 2 * i - 1; k++) {System.out.print("*");}System.out.println();}}
}

结果:

5. 输入三边的长度,求三角形的面积和周长(海伦公式)

import java.util.Scanner;public class Helen {public static void main(String[] args) {
//        输入三边的长度,求三角形的面积和周长(海伦公式)Scanner scanner = new Scanner(System.in);System.out.println("请输入三角形三遍长:");int a = scanner.nextInt();int b = scanner.nextInt();int c = scanner.nextInt();if (a + b > c && a + c > b && b + c > a){int perimeter = a + b + c;int p = perimeter / 2;double area = Math.pow((p * (p - a) * (p - b) * (p - c)), 0.5);System.out.println("三角形的周长:" + perimeter + ",面积:" + area);}}
}

结果:

6. 请输入一个数,判断这个数是偶数还是奇数。

如果使用偶数,请判断从1到该数是3的倍数有哪些;

如果是奇数,请判断从1到该数是5的倍数有哪些。

import java.util.Scanner;public class JudgeOddEven {public static void main(String[] args) {/*请输入一个数,判断这个数是偶数还是奇数。如果使用偶数,请判断从1到该数是3的倍数有哪些;如果是奇数,请判断从1到该数是5的倍数有哪些。*/Scanner scan = new Scanner(System.in);System.out.print("请输入一个整数:");int num = scan.nextInt();if (num % 2 == 0){System.out.println(num + ":是偶数");for (int i = 1; i <= num; i++){if (i % 3 == 0){System.out.println(i);}}}else {System.out.println(num + ":是奇数");for (int i = 1; i <= num; i++){if (i % 5 == 0){System.out.println(i);}}}}
}

结果:

7. 循环输入某同学S1结业考试的5门课成绩,并计算平均分

import java.util.Scanner;public class AverageScore {public static void main(String[] args) {/*循环输入某同学S1结业考试的5门课成绩,并计算平均分*/Scanner scan = new Scanner(System.in);System.out.println("请输入某同学的语文、数学、英语、物理、化学成绩:");double chinese = scan.nextDouble();double math = scan.nextDouble();double english = scan.nextDouble();double physical = scan.nextDouble();double chemistry = scan.nextDouble();double averageScore = (chinese + math + english + physical + chemistry) / 5;System.out.println(averageScore);}
}

结果:

8. 请从控制台输入一个数,是质数(素数)还是合数

提示:从2开始,只能被1和它本身除尽的数,是质数(素数)

import java.util.Scanner;public class JudgePrime {public static void main(String[] args) {/*请从控制台输入一个数,是质数(素数)还是合数提示:从2开始,只能被1和它本身除尽的数,是质数(素数)*/Scanner scan = new Scanner(System.in);System.out.print("请输入一个自然数(1, 2, 3, ...):");int num = scan.nextInt();if (num < 2) {System.out.println(num + "既不是质数也不是合数!");}else {int i;for (i = 2; i < num; i++) {if (num % i == 0) {System.out.println(num + "是合数!");break;}}if (i == num) {System.out.println(num + "是质数!");}}}
}

结果:

9. 求1~100之间不能被3整除的数之和

public class SumThree {public static void main(String[] args) {/*求1~100之间不能被3整除的数之和*/int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 3 != 0) {sum += i;}}System.out.println(sum);}
}

结果:

10. 根据用户输入的数,打印一个表格

    1    1*1    1*1*12    2*2    2*2*2....n    n平方    n立方
import java.util.Scanner;public class PrintTable {public static void main(String[] args) {/*根据用户输入的数,打印一个表格1  1*1     1*1*12  2*2     2*2*2....n  n平方 n立方*/Scanner scan = new Scanner(System.in);System.out.print("请输入一个正整数:");int n = scan.nextInt();for (int i = 1; i <= n; i++) {System.out.println(i + "\t" + i * i + "\t" + i * i * i);}}
}

结果:

11. 请使用循环完成如下图案的打印

public class PrintManyStar {public static void main(String[] args) {// 请使用循环完成如下图案的打印/*          行      列*           1       1**          2       2***         3       3****        4       4*****       5       5******      6       6*/for (int i = 0; i < 6; i++) {for (int j = 0; j <= i; j++){System.out.print("*");}System.out.println();}System.out.println("------------");/*          行  空  列*        1   3   1***       2   2   3*****      3   1   5*******     4   0   7*/for (int i = 1; i <= 4; i++) {for (int k = 1; k <= 4 - i; k++){System.out.print(" ");}for (int j = 1; j <= 2 * i - 1; j++) {System.out.print("*");}System.out.println();}System.out.println("----------");/*          行  空  列*******     1   0   7*****      2   1   5***       3   2   3*        4   3   1*/for (int i = 1; i <= 4; i++) {for (int k = 1; k <= i - 1; k++){System.out.print(" ");}for (int j = 1; j <= 8 - (2 * i -1); j++) {System.out.print("*");}System.out.println();}System.out.println("----------");/**********************/for (int i = 1; i <= 8; i++) {if (i <= 4) {for (int k = 1; k <= 4 - i; k++){System.out.print(" ");}for (int j = 1; j <= 2 * i - 1; j++) {System.out.print("*");}}else {for (int k = 1; k < 4; k++){System.out.print(" ");}System.out.print("*");}System.out.println();}System.out.println("----------");/*          行  空  列*        1   3   1***       2   2   3*****      3   1   5*******     4   0   7*****      1   1   5***       2   2   3*        3   3   1*/// 上四行for (int i = 1; i <= 4; i++) {for (int k = 1; k <= 4 - i; k++) {System.out.print(" ");}for (int j = 1; j <= 2 * i - 1; j++) {System.out.print("*");}System.out.println();}// 下三行for (int i = 1; i <= 3; i++) {for (int k = 1; k <= i; k++) {System.out.print(" ");}for (int j = 1; j <= 6 - (2 * i -1); j++) {System.out.print("*");}System.out.println();}System.out.println("------------");/*          行  空  列*        1   3   "*"* *       2   2   "*"+" "*1+"*"*   *      3   1   "*"+" "*3+"*"*     *     4   0   "*"+" "*5+"*"*   *      1   1   "*"+" "*3+"*"* *       2   2   "*"+" "*1+"*"*        3   3   "*"*/for (int i = 1; i <= 4; i++) {for(int k = 1; k <= 4 - i; k++) {System.out.print(" ");}if (i == 1) {System.out.print("*");}else {System.out.print("*");for (int j = 1; j <= 2 * i - 1 - 2; j++){System.out.print(" ");}System.out.print("*");}System.out.println();}for (int i = 1; i <= 3; i++) {for (int k = 1; k <= i; k++) {System.out.print(" ");}if (i == 3) {System.out.print("*");}else {System.out.print("*");for (int j = 1; j <= 4 - 2 * i + 1; j++){System.out.print(" ");}System.out.print("*");}System.out.println();}System.out.println("------------");/*          行  空  列*        1   3   1***       2   2   3* * *      3   1   ********     4   0   7* * *      1   1   *5***       2   2   3*        3   3   1*/for (int i = 1; i <= 4; i++) {for (int k = 1; k <= 4 - i; k++) {System.out.print(" ");}if (i == 3) {System.out.print("* * *");}else {for (int j = 1; j <= 2 * i - 1; j++) {System.out.print("*");}}System.out.println();}for (int i = 1; i <= 3; i++) {for (int k = 1; k <= i; k++) {System.out.print(" ");}if (i == 1) {System.out.print("* * *");}else {for (int j = 1; j <= 7 - 2 * i; j++) {System.out.print("*");}}System.out.println();}}
}

结果:

12. 请在控制台上输入两个数,并且输入一个符号(+-*/%),使用switch语句

import java.util.Scanner;public class Calculator {// 请在控制台上输入两个数,并且输入一个符号(+-*/%),使用switch语句public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("请输入两个数:");int num1 = scan.nextInt();int num2 = scan.nextInt();System.out.print("请输入运算符(+-*/%):");String operator = scan.next();String result = calculator(num1, num2, operator);
//        double a = 7.1;
//        double b = 5.3;
//        System.out.println(a+b);  // 12.399999999999999,精度丢失System.out.println(result);}public static String calculator(int num1, int num2, String operator){switch (operator) {case "+":return num1 + operator + num2 + "=" + (num1 + num2);case "-":return num1 + operator + num2 + "=" + (num1 - num2);case "*":return num1 + operator + num2 + "=" + (num1 * num2);case "/":return num1 + operator + num2 + "=" + (num1 / num2);case "%":return num1 + operator + num2 + "=" + (num1 % num2);}return null;}
}

结果:

13. 100~1000返回内,能补5和6整除的数

public class DivideFiveSix {public static void main(String[] args) {// 100~1000返回内,能补5和6整除的数divideFiveSix();}public static void divideFiveSix() {int count = 0;for (int i = 100; i <= 1000; i++){if (i % 5 ==0 && i % 6 == 0) {System.out.print(i + "  ");count += 1;}}System.out.println();System.out.println("能被5和6整除的数有:" + count + "个");}
}

结果:

14. 输入一个年份,判断该年是否是闰年

import java.util.Scanner;public class JudgeLeapYear {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入年份:");int year = scanner.nextInt();boolean isLeap = judgeLeapYear(year);if (isLeap){System.out.println(year + "是闰年");}else {System.out.println(year + "是平年");}}public static boolean judgeLeapYear(int year) {if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {return true;}return false;}
}

结果:

15. 健康计划:用户输入身高(m),体重(kg),计算BMI,并判断

计算公式:BMI = 体重 / 身高^2
    BMI < 18.5:过轻
    18.5≤ BMI <24:正常
    24 ≤ BMI <27:过重
    27 ≤ BMI < 30:轻度肥胖
    30 ≤ BMI < 35:中度肥胖
    BMI ≥ 35:重度肥胖

import java.util.Scanner;public class BodyMassIndex {/*健康计划用户输入身高(m),体重(kg)计算公式:BMI =体重 / 身高^2BMI < 18.5:过轻18.5≤ BMI <24:正常24 ≤ BMI <27:过重27 ≤ BMI < 30:轻度肥胖30 ≤ BMI < 35:中度肥胖BMI ≥ 35:重度肥胖*/public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入你的身高(m)、体重(kg):");float height = scanner.nextFloat();float weight = scanner.nextFloat();String result = bodyMassIndex(height, weight);System.out.println(result);}public static String bodyMassIndex(float height, float weight) {float bMI = weight / (height * height);System.out.println(bMI);if (bMI < 18.5){return "过轻!";}else if (bMI < 24) {return "正常!";}else if (bMI < 30) {return "过重!";}else if (bMI < 35) {return "过度肥胖!";}else {return "重度肥胖!";}}
}

结果:

16. 一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几?

public class FindNumber {public static void main(String[] args) {// 一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几?// (num + 3) % 5 == 0 && (num - 3) % 6 == 0int result = findNum();System.out.println(result);}public static int findNum() {int num = 0;for (int i = 0; i < 100; i++){if ((i + 3) % 5 == 0 && (i - 3) % 6 == 0) {num = i;break;}}return num;}
}

结果:

17. 在400-500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少?

public class FindNumber1 {public static void main(String[] args) {int result = findNum1();System.out.println(result);}public static int findNum1() {//在400-500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少?// i % 2 == 1 && i % 5 == 3 && i % 9 == 1int i;for (i = 400; i <= 500; i++) {if (i % 2 == 1 && i % 5 == 3 && i % 9 == 1) {break;}}return i;}
}

结果:

18. 有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?

public class FindNumber2 {public static void main(String[] args) {int result1 = findNumMin();System.out.println(result1);int result2 = findNumMax();System.out.println(result2);}// 有一些四位数,百位数字都是3,十位数字都是6,// 并且它们既能被2整除,又能被3整除,// 求这样的四位数中最大的和最小的两数各是几?public static int findNumMin() {int num = 0;label:for (int i = 1; i < 10; i++) {for (int j = 1; j < 10; j++) {num = i * 1000 + 3 * 100 + 6 * 10 + j;if (num % 2 == 0 && num % 3 == 0) {
//                    System.out.println(num);break label;}}}return num;}public static int findNumMax() {int num = 0;labal:for (int i = 9; i > 0; i--) {for (int j = 9; j > 0; j--) {num = i * 1000 + 3 * 100 + 6 * 10 + j;if (num % 2 == 0 && num % 3 == 0) {
//                    System.out.println(num);break labal;}}}return num;}
}

结果:

19. 编程求一个四位自然数ABCD,它乘以A后变成DCBA

public class FindNumber3 {public static void main(String[] args) {
//        int i = 1024;
//        int qian = i / 1000;
//        int bai = i % 1000 / 100;
//        int shi = i % 1000 % 100 / 10;
//        int ge = i % 1000 % 100 % 10;
//        System.out.println(" " + qian + bai + shi + ge);findNum();}// 编程求一个四位自然数ABCD,它乘以A后变成DCBApublic static void findNum() {int i;for (i = 1000; i < 10000; i++) {int qian = i / 1000;int bai = i % 1000 / 100;int shi = i % 1000 % 100 / 10;int ge = i % 1000 % 100 % 10;int j = ge * 1000 + shi * 100 + bai * 10 + qian;if (i * qian == j) {System.out.println(i);}}}
}

结果:

20. 编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和

public class FindNumber4 {// 编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和public static void main(String[] args) {findNum();}public static void findNum() {int num;for (num = 100; num < 999; num++) {int bai = num / 100;int shi = num % 100 / 10;int ge = num % 100 % 10;int sum = bai + shi + ge;if (num / 11 == sum) {System.out.println(num);}}}
}

结果:

21. 某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这个自然数

public class FindNumber5 {// 某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这个自然数public static void main(String[] args) {findNum();}public static void findNum() {int i;for (i = 560; i < 10000; i++) {int shang = i / 80;int yu = i % 80;if (shang % 7 == 0 && yu % 2 == 1 && yu % 3 == 1&& yu % 4 == 1 && yu % 5 == 1 && yu % 6 == 1) {System.out.println(i);}}}
}

结果:

22. 有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来

public class FindNumber6 {// 有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来public static void main(String[] args) {findNum();}public static void findNum(){
//        for (int i = 1; i <= 140; i++){
//            if (140 % i == 0) {
//                System.out.println(i);
//            }
//        }for (int i = 1; i < (int)(Math.sqrt(140)); i++) {label:for (int j = (int)(Math.sqrt(140)); j <= 140; j++) {if (i * j == 140) {// 去除当中可以进行约分的i、jif (i != 1) {for (int k = 2; k <= i; k++) {if (j % k == 0 && i % k == 0){continue label;}}}System.out.println(i + "/" + j);}}}}
}

结果:

23. 一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.

public class FindNumber7 {public static void main(String[] args) {findNum();}// 一个五位数,若在它的后面写上一个7,得到一个六位数A,// 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数public static void findNum() {int i;for (i = 10000; i < 100000; i++) {if((7 * 100000 + i) / (i * 10 + 7) == 5 &&(7 * 100000 + i) % (i * 10 + 7) == 0) {System.out.println(i);}}}
}

结果:

24. 把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已

public class FindNumber8 {public static void main(String[] args) {findNum();}//把123456789这个数乘以一个什么数,能使它的结果不但不含零,// 而且仍然是由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已public static void findNum(){int num = 123456789;int condition = 999999999 / num;
//        System.out.println(condition);for (int i = 2; i < condition; i ++) {int result = num * i;if (countBits(result) == countBits(num)) {System.out.println(result);}}
//        System.out.println(countBits(1034)); //测试countBits()函数}public static int countBits(int num){int c = num % 10;if (num <= 10) {return c;}return c * countBits(num / 10);}
}

结果:

25. 验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除

public class VerifyNumber {public static void main(String[] args) {boolean result = verifyNum();if (result) {System.out.println("结论正确!");} else {System.out.println("结论错误!");}
//        System.out.println(countBits(10));}// 验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除public static boolean verifyNum(){boolean isFlag = true;for (int i = 10; i < 100; i++) {int result = (i - countBits(i));if (result % 9 != 0) {System.out.println(i);isFlag = false;break;}else {System.out.println(i);}}return isFlag;}// 计算各位数字之和public static int countBits(int num){int c = num % 10;if (num < 10) {return c;}return c + countBits(num / 10);}
}

结果:

26. 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数"

public class TwinNumber {// 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数"public static void main(String[] args) {int[] arr = primeNumber();System.out.println(Arrays.toString(arr));// 冒泡for (int i = 0; i < arr.length; i++){for (int j = i + 1; j < arr.length; j++)if (arr[j] - arr[i] == 2){System.out.println("孪生数:" + arr[i] + "+" + arr[j]);break;}}}// 遍历所有100以内的质数,返回100以内质数的数组public static int[] primeNumber(){boolean isFlag = true;int count = 0;int[] arr = new int[100];for (int i = 2; i <= 100; i++) {for (int j = 2; j < Math.sqrt(i); j++) {if (i % j == 0) {isFlag = false;break;}}if (isFlag) {
//                System.out.println(i);arr[count] = i;count++;}isFlag = true;}int[] arr1 = new int[count];for (int i = 0; i < arr1.length; i++) {arr1[i] = arr[i];}return arr1;}
}

结果:

27. 求水仙花数。ABC  = a^3+b^3+c^3

public class NarcissisticNumber {public static void main(String[] args) {narcissisticNum();}// 求水仙花数 ABC  = a^3+b^3+c^3public static void narcissisticNum(){for (int i = 100; i < 1000; i++) {int a = i / 100;int b = i % 100 / 10;int c = i % 100 % 10;if (i == (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3))){System.out.println(i);}}}
}

结果:

28. 求 a+aa+aaa+.......+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也要可以指定

使用递归和循环两种方法:

import java.util.Scanner;public class RecursionTest {//求  a+aa+aaa+.......+aaaaaaaaa=?//其中a为1至9之中的一个数,项数也要可以指定。public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入a的值(1-9):");int a = scan.nextInt();System.out.println("请输入项数:");int item = scan.nextInt();countSum(a, item);// 递归int sum = 0;for (int i = 1; i <= item; i++){int result = countSum1(a, i);System.out.println(result);sum += result;}System.out.println(sum);}// 循环public static void countSum(int a, int item){int num = 0;int sum = 0;for (int i = 1; i <= item; i++) {num += a * (int)(Math.pow(10, i-1));System.out.println(num);sum += num;}System.out.println(sum);}// 递归public static int countSum1(int a, int item){if (item == 1){return a;}return countSum1(a,item - 1) + a * (int) (Math.pow(10, item - 1));}
}

结果:

29. 求 2/1+3/2+5/3+8/5+13/8.....前20项之和?

public class RecursionTest1 {// 求 2/1+3/2+5/3+8/5+13/8.....前20项之和?// 分子:2 3 5 8 13// 分母:1 2 3 5 8public static void main(String[] args) {double result = countItem();System.out.println("前20项之和:" + result);}public static double countItem(){double sum = 0;double a = 2;double b = 1;for (int i = 1; i < 20; i++) {sum += a / b;double temp = a;a = a + b;b = temp;
//            System.out.println(sum);}return sum;}
}

结果:

30. 求第n项的斐波那契数列的值,f(n) = f(n-1) + f(n-2)

使用递归和循环

import java.util.Scanner;public class RecursionTest1 {// 输入一个数n,输出斐波那契数列的第n项值public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("请输入项数:");int n = scan.nextInt();int result = fibonacci(n);System.out.println(result);fibonacci1(n);}public static int fibonacci(int n) {if (n == 0) {return 0;}if (n == 1) {return 1;}return fibonacci(n - 1) + fibonacci(n - 2);}public static void fibonacci1(int n) {int frist = 0;int second = 1;int three = 0;for (int i = 2; i <= n; i++) {three = frist + second;frist = second;second = three;}System.out.println(three);}
}

结果:

31. 一个人开始上楼梯,假设这个人每一次只能上一个或者两个台阶,当他到达第n个台阶时,问:共有多少种走法?

import java.util.Scanner;public class RecursionTest2 {// 输入一个上的楼梯数n,输出上楼梯的方法public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("请输入楼梯数:");int n = scan.nextInt();int result = count(n);System.out.println(result);}public static int count(int n) {if (n == 1) {return 1;}if (n == 2) {return 2;}return count(n - 1) + count(n - 2);}
}

结果:

32. 不死兔子:小明今年高考,考了700,父母,给他买了一对刚刚出生小兔子,四个月后成长为成年兔子,成年后,每过一个月,假设生出一对新的小兔子,问:第n月,小明家共有多少对兔子。

public class UndeadRabbit {/*不死兔子:小明今年高考,考了700,父母,给他买了一对刚刚出生小兔子,四个月后成长为成年兔子,成年后,每过一个月,假设生出一对新的小兔子,问:第n月,小明家共有多少对兔子。*/// 1 1 1 1  2 3 4 5  7 10 14 19  26 规律public static void main(String[] args) {int number = countRabbit(13);System.out.println(number);}public static int countRabbit(int month){if (month > 0){if (month < 5){return 1;}return countRabbit(month - 1) + countRabbit(month - 4);}return 0;}
}

结果:

Java编程练习题(涉及循环,函数等)相关推荐

  1. JAVA编程练习题(50题及答案11-20)

    [程序11] 题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? public class lianxi11 {public static void main(Str ...

  2. 简单java编程练习题

    https://wenku.baidu.com/view/29919119fc4ffe473268ab05.html

  3. Java编程练习题之冒泡排序

    public class Demo04 {public static void main(String[] args) {// 冒泡排序int[] arr = {9, 2, 4, 7, 1};// 外 ...

  4. java编程练习题_java编程练习题

    设计并实现一个员工(Employee)类,其成员变量有:姓名,性别,工龄,基础工资,岗位津贴,效益工资.成员方法有: (1)计算应付工资 (2)计算个人所得税(3500以下免税,超出3500以上部分按 ...

  5. Java黑皮书课后题第5章:*5.42(金融应用:求销售额)如下重写编程练习题5.39:①使用for循环替代do-while循环②允许用户自己输入COMMISSION_SOUGHT而非将它固定为常量

    5.42(金融应用:求销售额)如下重写编程练习题5.39:①使用for循环替代do-while循环②允许用户自己输入COMMISSION_SOUGHT而非将它固定为常量 题目 题目概述 编程练习题5. ...

  6. Java黑皮书课后题第5章:**5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9

    **5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9 题目 题目概述 编程练习题3.9 破题 代码 题目 题目概述 **5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9 编 ...

  7. 这些java基础编程练习题你都会了吗?

    很多人在自学java的时候看一遍视频,感觉就会了,课后并没有大量的练习来巩固当前所学的知识点,今天给大家整理了一些非常具有代表意义的题. Java基础类型题 1.反转一个只有3位数的整数. 从控制台输 ...

  8. Java黑皮书课后题第8章:*8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上。编写下面的方法,检测points数组中所有的点是否都在同一条直线上

    *8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上.编写下面的方法,检测points数组中所有的点是否都在同一条直线上 题目 题目描述与运行示例 破题 ...

  9. Java黑皮书课后题第6章:6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金。方法头如下所示。编写程序,显示下面表格

    6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金.方法头如下所示.编写程序,显示下面表格 题目 题目描述与运行示例 编程练习题5.39(非本题) 破题 5.39处理 主方 ...

  10. Java黑皮书课后题第5章:**5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止

    5.34(游戏:石头.剪刀.布)编程练习题3.17给出玩石头-剪刀-布游戏的程序.修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止 题目 题目概述 编程练习题3.17 破题 ...

最新文章

  1. 人工智能三大驱动力背后的CMOS传感器
  2. 关于MySql数据库设计表与查询耗时分析
  3. 计算机培训开场白,面试开场白及自我介绍范文4篇
  4. java rabbitmq 并发_RabbitMQ消息中间件 高级篇二 高并发情况下保障消息投递可靠性...
  5. iOS - OC RunLoop 运行循环/消息循环
  6. Java J2EE中的依赖查找
  7. 使用Idea部署SSM项目后,访问路径为url:8080/项目名_war_exploded的解决方案
  8. 通过调用外部exe的方法实现c#调用java
  9. 【脑电信号】基于matlab小波变换睡眠脑电信号监测【含Matlab源码 595期】
  10. UI线程安全 runOnUiThread 和 Handler 一般用法
  11. php游戏充值平台源码,PHP平台源码下载-PHP第四方支付平台源码pc端下载
  12. MyBatis【钢镚核恒】
  13. 信号分析与处理 基于matlab认识实验
  14. 0基础参加数学建模,最大程度冲击奖项
  15. ceph pg peering和恢复 (2)
  16. Solidity 投票案例
  17. 十年牧码,我的平凡之路
  18. 【环境配置】自定义Linux欢迎界面/etc/motd文件
  19. Gameplay - 设计使命召唤类型的关卡
  20. 手机进行linux编程的 app,手机也能编程?盘点这6个可以用手机编程的App!快收藏...

热门文章

  1. Java引用多个jar包的写法
  2. sprint() 和 snprint()
  3. python ffmpeg转码_使用FFMPEG进行HTML5 /和实时转码
  4. Qtableview实现对某一列可编辑,对某几列不可编辑
  5. 比较贵的计算机配置,什么电脑配置好 几款配置比较豪华的笔记本电脑推荐【图文】...
  6. jtm 一键安装mysql_一键安装MySQL
  7. 中文金融领域情感词典构建
  8. 论文笔记 -- Contrastive Clustering(对比聚类)
  9. 线切割计算机传输出错,为什么线切割单板机总传不了或出错?解开传送数据之迷...
  10. 树莓派和机器人有啥关系(也有jetson tx2的知识主要)