Java 小白10道Java 基础编程练习题

it2025-08-23  5

1.指数计算问题

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死 ,问每个月的兔子对数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....(斐波那契) class AdditiveFor { public static void main(String[] ages) { int[] intar = new int[4];/* 月份*/ intar[0] = 1; intar[1] = 1; for (int i = 0; i < intar.length; i++) { if (i>1) { intar[i] = intar[i-1]+intar[i-2]; } System.out.println((i+1)+"月"+"\t"+intar[i]+"只"); } } } 运行结果 1月 1只 2月 1只 3月 2只 4月 3只

2.指定范围包含的素数

判断101-200之间有多少个素数,并输出所有素数。 class AdditiveFor { public static void main(String[] ages) { int a = 200; for (int j = 100;j <=a;j++) {int flag = 0; //在2到max范围,找到能把n整除的值 for (int i = 2; i < j; i++) { if (j%i==0) { flag = 1; break; } } if (flag ==0) { System.out.println(j+"是素数"); } } } } 运行结果 101是素数 103是素数 107是素数 109是素数 113是素数 127是素数 131是素数 137是素数 139是素数 149是素数 151是素数 157是素数 163是素数 167是素数 173是素数 179是素数 181是素数 191是素数 193是素数 197是素数 199是素数

3.水仙花数

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身 。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 class car { public static void main(String[] args) { int a,b,c; for(int i = 100;i<1000;i++) { c = i%10; b = (i/10)%10; a = i/100; if (Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)==i) { System.out.println(""+i); } } } } 153 370 371 407

4.分解质因数

将一个正整数分解质因数。例如:输入90,打印出90=233*5。 import java.util.Scanner; class num { public static void main(String[] args) { System.out.println("请输入数字"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); for (int k = 2;k<num;k++) { while (k!=num) { if (num%k==0) { System.out.print(k+"*"); num = num/k; }else { break; } } } System.out.print(num); } } 请输入数字 12 2*2*3

5.条件运算符使用

利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 import java.util.Scanner; class fraction { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("请输入你的分数"); double fenshu = sc.nextDouble(); if (fenshu>=90) { System.out.println(fenshu +"A"); }else if (fenshu>=60&&fenshu<90) { System.out.println(fenshu+"B"); }else if (fenshu<60) { System.out.println(fenshu+"C"); }else if (fenshu>100&&fenshu<0) { System.out.println("输入无效"); } } } 请输入你的分数 12 12.0C

输入两个正整数m和n,求其最大公约数和最小公倍数。

import java.util.Scanner; class number { public static void main(String[] args) { System.out.println("输入两个数字"); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int max=0,min= 0;//定义最大公约数、最小公倍数 if (a>b) {int t = a; a = b; b=t; } for (int i=1;i<=a;i++) { if (a%i==0&&b%i==0) max = i; } min = a*b/max; System.out.println("最大公约数为:"+max+",最小公倍数为:"+min); } } 输入两个数字 72 64 最大公约数为:8,最小公倍数为:576

7.统计字符串中类型个数

import java.util.Scanner; class character { public static void main(String[] args) { System.out.print("请输入一串字符:"); Scanner scan = new Scanner(System.in); String str = scan.nextLine();//将一行字符转化为字符串 scan.close(); count(str); } private static void count(String str) { String E1 = "[\u4e00-\u9fa5]";//汉字 String E2 = "[a-zA-Z]"; String E3 = "[0-9]"; String E4 = "\\s";//空格 int countChinese = 0; int countLetter = 0; int countNumber = 0; int countSpace = 0; int countOther = 0; char arry[] = str.toCharArray();//将字符串转化为字符数组 String[] array_String = new String[arry.length];//汉字只能作为字符串处理 for (int i = 0;i<arry.length;i++) array_String[i] = String.valueOf(arry[i]); for(String s:array_String){ if(s.matches(E1)) countChinese++; else if(s.matches(E2)) countLetter++; else if(s.matches(E3)) countNumber++; else if(s.matches(E4)) countSpace++; else countOther++; } System.out.println("输入的汉字个数:"+countChinese); System.out.println("输入的字母个数:"+countLetter); System.out.println("输入的数字个数:"+countNumber); System.out.println("输入的空格个数:"+countSpace); System.out.println("输入的其它字符个数:"+countSpace); } }

8.求s=a+aa+aaa+aaaa+aa…a的值

import java.util.Scanner; class Car{ public static void main(String[] args) { Scanner reader=new Scanner(System.in); int a=0,n=0,b=0; System.out.println("输入a:"); a=reader.nextInt(); b=a; System.out.println("输入次数n:"); n=reader.nextInt(); int sum=0;//累加器 for(int i=0;i<n;i++) { sum =sum +a; a=a*10; a = a+b; } System.out.println("sum="+sum); } } 输入a: 1 输入次数n: 3 sum=123

9.指定范围的完数

public class Prog9{ public static void main(String[] args){ int n = 10000; compNumber(n); } //求完数 private static void compNumber(int n){ int count = 0; System.out.println(n+"以内的完数:"); for (int i = 1; i <= 10000; i++) { int temp = 0;// 定义因子之和变量 for (int n = 1; n < i / 2 + 1; n++) { if (i % n == 0) { temp += n;// 能被整除的除数则被加到temp中 } } if (temp == i) {// 如果因子之和与原数相等的话,说明是完数 System.out.println(i + " ");// 输出完数 } } } }

10.反指数计算

一个球从80米高度自由落下,每次落地后反弹的高度为原高度的一半,第六次落地共经过多少米?第六次反弹多高? public class Degrees { public static void main(String[] ages) { double sum=80, double height=80; for(int i=1;i<=6;i++)//计算第一次落地到第6次落地再弹起小球经过多少米 { height=height/2; sum=sum+height*2; }//循环结束,小球第6次落地 System.out.println("第6次落地时的高度是:"+height+"\n小球共经过:"+sum+"米"); } }
最新回复(0)