AI智能
改变未来

Java 基础入门训练

文章目录

  • Java基础入门训练
  • 一、根据年龄数值输出年龄段
  • 二、打印1-100素数
  • 三、判断素数
  • 四、输出闰年
  • 五、输出乘法口诀表
  • 六、求两个正整数的最大公约数
  • 七、计算表达式的值
  • 八、数字9 出现的次数
  • 九、求水仙花数
  • 十、编写代码模拟三次密码输入的场景
  • 十一、求二进制位中1的个数
  • 十二、求二进制奇偶序列
  • 十三、猜数字游戏
  • 完!

Java基础入门训练

一、根据年龄数值输出年龄段

题目内容:

  根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)

Java代码实现

import java.util.Scanner;public static void main0(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("请输入这个人的年龄大小:");int age = scan.nextInt();if(age>=0 && age<=18){System.out.println("少年");}else if(age>=19 && age<=28){System.out.println("青年");}else if(age>=29 && age<=55){System.out.println("中年")20000;}else if(age>=56){System.out.println("老年");}}

编译效果:


  我们输入一个数值的大小,程序会打印出对应的年龄段.

二、打印1-100素数

题目内容:

  打印1-100之间存在的素数

Java代码实现

public static void main(String[] args) {int i=1;int j=2;int count=0;for(i=1;i<=100;i++){for(j=2;j<i;j++){if (i%j==0){break;}}if(i==j){System.out.println(i);count++;}}System.out.println(count);}

编译效果:


注意点:打印出1-100之间的素数,我们用的是较为简单的做法,还可以更加方便地求解,比如i++ –> i+=2,偶数不可能是素数。还可以将j的范围缩小到 i/2 或者 i开平方.

三、判断素数

题目内容:

  输入一个数字判断是否是素数

Java代码实现:

import java.util.Scanner;public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.printf("请输入要判断的数字:");int num=scan.nextInt();int i=0;for( i=2;i<num;i++){if(num%i==0){System.out.println(num+"不是素数");break;}}if(i==num){System.out.println(num+"是素数");}}

编译效果:

注意点:同上

四、输出闰年

题目内容:

  输出 1000 – 2000 之间所有的闰年

Java代码实现:

public static void main(String[] args) {int count = 0;for(int year=1000;year<=2000;year++){if((year%4==0) && (year %100!=0) ||(year %400 == 0) ){System.out.println(year);count++;}}System.out.println(count);}

编译效果:

五、输出乘法口诀表

题目内容:

  输出9*9乘法口诀表

Java代码实现:

public static void main(String[] args) {for(int i=1;i<10;i++){for(int j=1;j<=i;j++){System.out.printf("%d*%d=%-2d  ",j,i,i*j);}System.out.println();}}

编译效果:

注意点:格式化输出,我们可以采用C语言中printf函数的格式.

六、求两个正整数的最大公约数

题目内容:

  输入两个正整数,输出他们的最大公约数

Java代码实现:

import java.util.Scanner;public static void main(String[] args) {Scanner sc =  new Scanner(System.in);int a=sc.nextInt();int b=sc.nextInt();int c = 0;if(a<b){int tmp = a;a = b;b = tmp;}while(a%b!=0) {c = a % b ;a = b;//b = c;}System.out.println(b);}

编译效果:

注意点:我们做题时用到了辗转相除法,不了解规则的同学可以来到我的往期博客C语言编程笔试题(二)了解.

七、计算表达式的值

题目内容:

  计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 – 1/100 的值。

Java代码实现:

public static void main(String[] args) {int flag = 1;double sum = 0.0;for(int i=1;i<=100;i++){sum += (flag)*(1.0/i) ;flag=-flag;}System.out.println(sum);}

编译效果:

注意点: sum += ( flag ) * ( 1.0 / i) ;这里一定要明确 是1.0 / i ,不是1 / i.另外sum要定义成double类型.

八、数字9 出现的次数

题目内容:

  编写程序数一下 1到 100 的所有整数中出现多少个数字9

// 9  19  29  39  49  59  69  79  89  90  91  92  93 94  95  96  97  98  99public static void main(String[] args) {int count = 0;for( int i = 0;i<=100;i++){if(i%10==9){count++;}if(i/10==9){count++;}}System.out.println(count);}

编译效果:

注意点:99中9出现了两次,所以我们用两个if语句,分别对含有9的数字中9的个数进行计数.

九、求水仙花数

题目内容:

  求出0~999之间的所有“水仙花数”并输出。

  水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如:153=1+5+3?,则153是一个“水仙花数.

Java代码实现:

public static void main(String[] args) {for(int n=1;n<999;n++){int tmp=n;int count = 0;//1.算出该数字有多少位while(tmp!=0){count++;tmp = tmp/10;}//得到的count 即为该数字的位数//2.将该数字的每一位数字得到,算出每一位数字的次方的和tmp=n;int sum = 0;while(tmp!=0){sum += Math.pow(tmp%10,count);tmp = tmp/10;}//3.比较结果与原数字是否相等if(sum==n){System.out.println(sum+"是水仙花数");}}}

编译效果:

思考步骤:

1.算出该数字有多少位

2.将该数字的每一位数字得到,算出每一位数字的次方的和

3.比较结果与原数字是否相等

十、编写代码模拟三次密码输入的场景

题目内容:

  最多能输入三次密码,密码正确,提示“登录成功”,密码错误可以重新输入.

  最多输入三次。三次均错,则提示退出程序

Java代码实现:

import java.util.Scanner;public static void main(String[] args) {Scanner sc =  new Scanner(System.in);int count = 3;while(count>0){System.out.println("请输入密码:");String password = sc.nextLine();if(password.equals("123456")){System.out.println("输入正确 , 登陆成功 !!");}else{count--;System.out.println("输入错误 ,"+"你还有"+count+"次机会!!");}}}

编译效果:

注意点:equals() 比较字符串的功能.

十一、求二进制位中1的个数

题目内容:

  写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1

Java代码实现:

import java.util.Scanner;public static void main(String[] args) {Scanner sc =  new Scanner(System.in);System.out.print("请输入数字:");int num = sc.nextInt();int count = 0;for(int i=0;i<32;i++){if(((num>>i) & 1 )== 1){count++;}}System.out.println(count);}

编译效果:

注意点: 明确位操作符& 的作用,二进制的每一位 &1,都可以得到这一位上的数字

十二、求二进制奇偶序列

题目内容:

  获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。

Java实现代码:

import java.util.Scanner;public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("请输入一个数字:");int num = s.nextInt();// 取到二进制数列中的偶数位for(int i=31;i>=0;i-=2){System.out.print(((num>>i)&1)+" ");}System.out.printf("\\n");//换行打印// 取到二进制序列中的奇数位for(int i=30;i>=0;i-=2){System.out.print(((num>>i)&1)+" ");}}

编译效果:

注意点:这是练习十二的拓展,我们根据二进制数列的奇偶位进行取位.

十三、猜数字游戏

  我们实现简单的猜数字游戏,由电脑随机生成100以内的数字,我们进行猜测,直到猜对为止,程序退出。

Java代码实现:

import java.util.Random;import java.util.Scanner;public static void main(String[] args) {Scanner scan=new Scanner(System.in);Random random = new Random();int randNum = random.nextInt(100);//System.out.println(randNum);while(true){System.out.println("请输入数字:");int num=scan.nextInt();if(num<randNum){System.out.println("你猜小了");}else if(num==randNum){System.out.println("你猜对了");break;}else if(num>randNum){System.out.println("你猜大了");}}}

编译效果:

  好了,我们Java基础题目的分享就到这里结束了,希望大家多多练习。

  谢谢大家的欣赏与关注!!!

完!

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Java 基础入门训练