2022年完整word版,java入门道编程题 .pdf
《2022年完整word版,java入门道编程题 .pdf》由会员分享,可在线阅读,更多相关《2022年完整word版,java入门道编程题 .pdf(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、50 道 JAVA 基础编程练习题【程序 1】题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.public class Prog1 public static void main(String args)int n=10;System.out.println(第+n+个月兔子总数为+fun(n);private static int fun(int n)if(n=1|n=2)return 1;else return fun(n-1)
2、+fun(n-2);【程序 2】题目:判断101-200 之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2 到 sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。public class Prog2 public static void main(String args)int m=1;int n=1000;int count=0;/统计素数个数for(int i=m;in;i+)if(isPrime(i)count+;System.out.print(i+);if(count%10=0)System.out.println();System.ou
3、t.println();名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 41 页 -System.out.println(在+m+和+n+之间共有+count+个素数);/判断素数private static boolean isPrime(int n)boolean flag=true;if(n=1)flag=false;else for(int i=2;i=Math.sqrt(n);i+)if(n%i)=0|n=1)flag=false;break;else flag=true;return flag;【程序 3】题目:打印出所有的 水仙花数,所谓 水仙花数 是指一个三位数,
4、其各位数字立方和等于该数本身。例如:153 是一个 水仙花数,因为 153=1 的三次方 5 的三次方 3 的三次方。程序分析:利用for 循环控制100-999 个数,每个数分解出个位,十位,百位。public class Prog3 public static void main(String args)for(int i=100;i1000;i+)if(isLotus(i)System.out.print(i+);System.out.println();/判断水仙花数private static boolean isLotus(int lotus)int m=0;int n=lotus
5、;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 41 页 -int sum=0;m=n/100;n -=m*100;sum=m*m*m;m=n/10;n-=m*10;sum+=m*m*m+n*n*n;if(sum=lotus)return true;else return false;【程序 4】题目:将一个正整数分解质因数。例如:输入90,打印出 90=2*3*3*5。程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果 nk,但 n能被 k 整除,则应打印出k 的值,
6、并用n 除以 k 的商,作为新的正整数n,重复执行第一步。(3)如果 n不能被 k 整除,则用k+1 作为 k 的值,重复执行第一步。public class Prog4 public static void main(String args)int n=13;decompose(n);private static void decompose(int n)System.out.print(n+=);for(int i=2;i=90 分的同学用A表示,60-89 分之间的用 B表示,60 分以下的用C表示。程序分析:(ab)?a:b这是条件运算符的基本例子。public class Prog5
7、 public static void main(String args)int n=-1;try n=Integer.parseInt(args0);catch(ArrayIndexOutOfBoundsException e)System.out.println(请输入成绩);return;grade(n);/成绩等级计算private static void grade(int n)if(n100|n=90)?分,属于 A 等:(n60)?分,属于B 等:分,属于C 等);System.out.println(n+str);【程序 6】题目:输入两个正整数m和 n,求其最大公约数和最小公
8、倍数。程序分析:利用辗除法。public class Prog6 public static void main(String args)int m,n;try m=Integer.parseInt(args0);n=Integer.parseInt(args1);catch(ArrayIndexOutOfBoundsException e)System.out.println(输入有误);return;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 41 页 -max_min(m,n);/求最大公约数和最小公倍数private static void max_min(int m
9、,int n)int temp=1;int yshu=1;int bshu=m*n;if(nm)temp=n;n=m;m=temp;while(m!=0)temp=n%m;n=m;m=temp;yshu=n;bshu/=n;System.out.println(m+和+n+的最大公约数为+yshu);System.out.println(m+和+n+的最小公倍数为+bshu);【程序 7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。程序分析:利用while 语句,条件为输入的字符不为n.import java.util.Scanner;public class Pr
10、og7_1 public static void main(String args)System.out.print(请输入一串字符:);Scanner scan=new Scanner(System.in);String str=scan.nextLine();/将一行字符转化为字符串scan.close();count(str);名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 41 页 -/统计输入的字符数private static void count(String str)String E1=u4e00-u9fa5;/汉字String E2=a-zA-Z;String
11、E3=0-9;String E4=s;/空格int countChinese=0;int countLetter=0;int countNumber=0;int countSpace=0;int countOther=0;char array_Char=str.toCharArray();/将字符串转化为字符数组String array_String=new Stringarray_Char.length;/汉字只能作为字符串处理for(int i=0;iarray_Char.length;i+)array_Stringi=String.valueOf(array_Chari);/遍历字符串数
12、组中的元素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(输入的数字个数:+countNumbe
13、r);System.out.println(输入的空格个数:+countSpace);System.out.println(输入的其它字符个数:+countSpace);名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 41 页 -import java.util.*;public class Prog7_2 public static void main(String args)System.out.println(请输入一行字符:);Scanner scan=new Scanner(System.in);String str=scan.nextLine();scan.close
14、();count(str);/统计输入的字符private static void count(String str)List list=new ArrayList();char array_Char=str.toCharArray();for(char c:array_Char)list.add(String.valueOf(c);/将字符作为字符串添加到list表中Collections.sort(list);/排序for(String s:list)int begin=list.indexOf(s);int end=list.lastIndexOf(s);/索引结束统计字符数if(lis
15、t.get(end)=s)System.out.println(字符+s+有+(end-begin+1)+个);【程序 8】题目:求 s=a+aa+aaa+aaaa+aa.a的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制。程序分析:关键是计算出每一项的值。import java.util.Scanner;public class Prog8 public static void main(String args)System.out.print(求 s=a+aa+aaa+aaaa+.的值,请输入a 的值:);Scanne
16、r scan=new Scanner(System.in).useDelimiter(s*);/以空格作为分隔符名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 41 页 -int a=scan.nextInt();int n=scan.nextInt();scan.close();/关闭扫描器System.out.println(expressed(2,5)+add(2,5);/求和表达式private static String expressed(int a,int n)StringBuffer sb=new StringBuffer();StringBuffer subSB
17、=new StringBuffer();for(int i=1;in+1;i+)subSB=subSB.append(a);sb=sb.append(subSB);if(in)sb=sb.append(+);sb.append(=);return sb.toString();/求和private static long add(int a,int n)long sum=0;long subSUM=0;for(int i=1;in+1;i+)subSUM=subSUM*10+a;sum=sum+subSUM;return sum;【程序 9】题目:一个数如果恰好等于它的因子之和,这个数就称为 完
18、数。例如 6=123.编程找出 1000 以内的所有完数。public class Prog9 public static void main(String args)int n=10000;compNumber(n);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 41 页 -/求完数private static void compNumber(int n)int count=0;System.out.println(n+以内的完数:);for(int i=1;in+1;i+)int sum=0;for(int j=1;ji/2+1;j+)if(i%j)=0)sum+=j;if
19、(sum=i)System.out.print(i+);if(count+)%5=0)System.out.println();【程序 10】题目:一球从100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10 次落地时,共经过多少米?第10 次反弹多高?import java.util.Scanner;public class Prog10 public static void main(String args)System.out.print(请输入小球落地时的高度和求解的次数:);Scanner scan=new Scanner(System.in).useDelimi
20、ter(s);int h=scan.nextInt();int n=scan.nextInt();scan.close();distance(h,n);/小球从 h 高度落下,经n 次反弹后经过的距离和反弹的高度private static void distance(int h,int n)double length=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 41 页 -for(int i=0;in;i+)length+=h;h/=2.0;System.out.println(经过第+n+次反弹后,小球共经过+length+米,+第+n+次反弹高度为+h+米);【程序
21、 11】题目:有1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。public class Prog11 public static void main(String args)int count=0;int n=0;for(int i=1;i5;i+)for(int j=1;j5;j+)if(j=i)continue;for(int k=1;k1000000)profit=profit_sub-1000000;profit_sub=1000000;prize+=prof
22、it*0.01;if(profit600000)profit=profit_sub-600000;profit_sub=600000;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 41 页 -prize+=profit*0.015;if(profit400000)profit=profit_sub-400000;profit_sub=400000;prize+=profit*0.03;if(profit200000)profit=profit_sub-200000;profit_sub=200000;prize+=prize*0.05;if(profit100000)prof
23、it=profit_sub-100000;profit_sub=100000;prize+=profit*0.075;prize+=profit_sub*0.1;return prize;【程序 13】题目:一个整数,它加上100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?程序分析:在10 万以内判断,先将该数加上100 后再开方,再将该数加上268 后再开方,如果开方后的结果满足如下条件,即是结果。public class Prog13 public static void main(String args)int n=0;for(int i=0;i100001
24、;i+)if(isCompSqrt(i+100)&isCompSqrt(i+268)n=i;break;System.out.println(所求的数是:+n);/判断完全平方数private static boolean isCompSqrt(int n)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 41 页 -boolean isComp=false;for(int i=1;iMath.sqrt(n)+1;i+)if(n=Math.pow(i,2)isComp=true;break;return isComp;【程序 14】题目:输入某年某月某日,判断这一天是这一年的第几
25、天?程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上5 天即本年的第几天,特殊情况,闰年且输入月份大于3 时需考虑多加一天。import java.util.Scanner;public class Prog14 public static void main(String args)Scanner scan=new Scanner(System.in).useDelimiter(D);/匹配非数字System.out.print(请输入当前日期(年-月-日):);int year=scan.nextInt();int month=scan.nextInt();int d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年完整word版 java入门道编程题 2022 完整 word java 门道 编程
限制150内