java编程题50道(1)

时间:2021-07-11
本文章向大家介绍java编程题50道(1),主要包括java编程题50道(1)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

程序1

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

题目思路:

先推出几个月内兔子数量 1 1 2 3 5 8 13.。。。

可推出规律为 n = n-1+n-2

定义函数累计兔子数量,再通过主函数输出

package test;

import java.util.Scanner;

public class hello {
    public static int rabbit(int i) {
    if(i==1||i==2) {//兔子数量在前两个月没有变化
    return 1;
    }
    else {
    return rabbit(i-1)+rabbit(i-2);//根据变化可知三个月后均为前两月相加
    }
    }


public static void main(String[] args) {
    Scanner in =new Scanner(System.in);
    int i =in.nextInt();
    int a;
    a=rabbit(i);
    System.out.print("输出月份求该月兔子数量h");
    System.out.print(i+"月共有"+a+"对兔子");
}

}

程序2

题目:判断101-200之间有多少个素数,并输出所有素数。

题目思路:

以主函数确定范围并输出,再构造函数进行素数判断,

 1 package test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class hello {
 6 public static boolean judge_prime(int x) {//先定义判断素数函数,注意定义函数返回类型!
 7 for (int i=2;i<x;i++) {//判断函数方法可以任意改变
 8 if(x%i==0) {
 9 return false;
10 }
11 }
12 return true;
13 }
14 public static void main(String[] args) {
15 Scanner in =new Scanner(System.in);
16 System.out.println("请输入数字给出素数范围");//主函数中定义素数范围,通过运用函数进行判断
17 int a =in.nextInt();
18 int b =in.nextInt();
19 for (int i=a;i<=b;i++) {
20 if(judge_prime(i)) {
21 System.out.print(i+" ");//println则为隔行输出
22 }
23 }
24 }
25 
26 }

程序3

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

题目思路:

与素数筛选相同,以主函数选择数字,通过构造函数判断,最后主函数输出

要注意通过整除取余来获得各个位数

 1 package test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class hello {
 6     public static boolean daffodil(int i) {
 7     int x=i/100;//通过求整取余获得各个位数上的数字
 8     int y=(i/10)%10;
 9     int z=i%10;
10     if (Math.pow(x, 3)+Math.pow(y, 3)+Math.pow(z, 3)==i) {
11         return true;//以此来判断水仙花数并返回主函数输出
12     }
13     return false;
14     }
15     public static void main(String[] args) {
16         Scanner in =new Scanner(System.in);
17         int sum=0;
18         for(int i=100;i<=999;i++)//通过for循环获得三位数
19         {
20             if(daffodil(i)) {
21                 System.out.print(i+" ");
22                 sum++;//统计个数
23             }
24         }
25         System.out.print("共有"+sum+"个水仙花数");
26     }
27 
28 }

程序4

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

题目思路:

先找到最低质数,不能相除时寻找下一个质数,当质数与正整数相同时已经除尽便直接输出

 1 package test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class hello {
 6     
 7     public static void main(String[] args) {
 8         System.out.print("输入分解数:");
 9         Scanner in =new Scanner(System.in);
10         int x =in.nextInt();
11         System.out.print(x+"=");
12         for (int i=2;i<=x;i++ )
13         {
14             while(x%i==0 && x!=i)//若使用for进行一次便会退出
15             {
16                 x=x/i;
17                 System.out.print(i+"*");//找到质因数输出
18             }
19             if (x==i) {//当不能再分解时便将他输出
20                 System.out.print(i);
21                 
22             }
23         }
24     }
25 
26 }

程序5

题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

题目思路:

了解条件运算符的嵌套

例如:

 

1、max=(a>b)?a:b

 

就是将a和b二者中较大的一个赋给max。

 

2、min=(a<b)?a:b

 

就是将a和b二者中较小的一个赋给min。

 1 package test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class hello {
 6     
 7     public static void main(String[] args) {
 8         System.out.print("输入分数:");
 9         Scanner in =new Scanner(System.in);
10         int x =in.nextInt();
11         String score=(x>90)?"A":(x>=60)?"b":"c";//判断成绩归类,因abc为字符,所以使用string
12         System.out.print("分数为"+score+"类");
13     }
14 
15 }

原文地址:https://www.cnblogs.com/ljjforever/p/14999518.html