文章目录
- 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基础题目的分享就到这里结束了,希望大家多多练习。
谢谢大家的欣赏与关注!!!