1.键盘输入一个数,提取每一位。
- 需求:通过键盘输入一个正整数,最大限制输入5位,超过则提示超出,没超过就对应输出每一位!
思路
1. 如何从键盘输入一个整数。
2. 获取到每一位并输出。
3. 判断超过5位就提示超出范围了。
分析
1. 如何从键盘输入一个整数。
1.导包:import java.util.Scanner;
2.创建:Scanner sc = new Scanner(System.in);
3.使用:int number = sc.nextInt();
2. 如何获取到每一位并输出。
这里我们需要用到除运算符(“/”)和取余运算符(“%”)了
除运算法(“/”)得到的结果为两数之商
例:A/B=商
取余运算符(“%”)得到的结果为两数相除的余数
例:A%B=A/B的余数
```
了解了以上两个运算符,我们来用一个例子具体讲解一下 获取输入正整数的每一位的步骤:(12345)
- 取出个位:表示输入的这个数模10,取余数。例如5/10等于0余5,5就是个位
- 取出十位,表示输入的这个数除以10在模10,取余数。例如45/10等于4,然后拿商4/10等于0余4,此时4就是十位
- 取出百位:表示输入的这个数除以100在模10,取余数。例如345/100等于3,然后拿3/10等于0余3,此时3就是十位
- 取出千位:表示输入的这个数除以1000在模10,取余数。例如2345/1000等于2,2/10等于0余2,此时2就是千位。
- 取出万位表示输入的这个数除以10000在模10,取余数。例如12345/10000等于1,1/10等于0余1,此时1就是万位
实现代码
- 键盘输入
// 通过键盘输入数字,取到每一位数字
Scanner sc = new Scanner(System.in);
// 提示用户输入一个正整数
System.out.println("请输入一个正整数:");
// 定义一个变量number用来存放输入的数字
int number = sc.nextInt();
- 取位数
// 取个位:表示输入的这个数模10,取余数。例如5/10等于0余5,5就是个位
int ge = number % 10;
// 取十位:表示输入的这个数除以10在模10,取余数。例如45/10等于4,4/10等于0余4,此时4就是十位
int shi = number / 10 % 10;
// 取百位:表示输入的这个数除以100在模10,取余数。例如345/100等于3,3/10等于0余3,此时3就是百位。
int bai = number / 100 % 10;
// 取千位:表示输入的这个数除以1000在模10,取余数。例如2345/1000等于2,2/10等于0余2,此时2就是千位。
int qian = number / 1000 % 10;
// 取万位:表示输入的这个数除以10000在模10,取余数。例如12345/10000等于1,1/10等于0余1,此时1就是万位。
int wan = number / 10000 % 10;
- 求输入的位数
// 定义一个sum求number的个数
int sum = 0;
// 判断输入的number如果不等于0就执行下面代码,等于0的话就直接跳过
while(number!=0){
// number每次除以10,下面的sum就+1次,一直到number的值等于0,然后才跳出循环
// 例如123:第一次循环123/10=12,因为整数除法会舍弃小数,此时sum就变为1。然后判断number等于12,不等于0就继续执行12/10=1,sum此时变成了2
// 然后判断number等于1,还是不等于0就继续执行1/10=0,sum此时变成了3。第四次判断的时候number就等于0了,就跳出循环,此时sum=3就代表了number的个数
number = number / 10;
sum++;
}
- 输出
// 获取到number个数之后在用switch来判断是几位,在输出对应的语句
switch (sum){
case 1:
System.out.println("个位是:" + ge);
break;
case 2:
System.out.println("十位是:" + shi + "个位是:" + ge);
break;
case 3:
System.out.println("百位是:" + bai + "十位是:" + shi + "个位是:" + ge);
break;
case 4:
System.out.println("千位是:" + qian + "百位是:" + bai + "十位是:" + shi + "个位是:" + ge);
break;
case 5:
System.out.println("万位是:" + wan + "千位是:" + qian + "百位是:" + bai + "十位是:" + shi + "个位是:" + ge);
break;
default:
System.out.println("最大只能输入五位哟!");
break;
}
下面我们来运行看一下:
如果输入3位:
如果输入5位:
如果输入6位:提示最大值
2.逢7过
- 需求:通过键盘输入一个开始和结束数字。判断个位、十位、百位出现7的数字,7的倍数直接过。
思路
1. 键盘输入初始数字和结束数字。
2.个位,十位,百位是7的直接跳过
3. 7的倍数的跳过
分析
1. 如何从键盘输入一个整数。
1.导包:import java.util.Scanner;
2.创建:Scanner sc = new Scanner(System.in);
3.使用:int number = sc.nextInt();
2. 键盘输入初始数字和结束数字。
定义两个变量,一个用来存放初始位置,一个存放结束位置
3.判断个位,十位,百位是7的数字
个位:用初始数字模10取余数是7的数字
十位:初始数字/10取商是7的十位
百位:初始数字来/100取到商是7的百位
4.求7的倍数则跳过
初始数字除以7等于0求到7的倍数
代码实现
- 通过键盘输入开始和结束位置
Scanner sc = new Scanner(System.in);
System.out.println("请输入开始的数字:");
// 定义Begin表示逢7过的开始数字
int Begin = sc.nextInt();
System.out.println("请输入结束的数字:");
// 定义end表示逢7过的结束数字
int end = sc.nextInt();
- 用for循环遍历
// 用for来依次循环,初始位置为输入的开始数字,结束位置为输入的结束位置。如果不大于结束位置就继续执行,每执行一次初始数字就+1
for (; Begin < end; Begin++) {
}
- 然后用if筛选出个位,十位,百位和7的倍数
// 用初始数字来/100取到商是7的百位,然后在用初始数字/10取商是7的十位,用初始数字模10取余数是7的数字,最后用初始数字除以7等于0求到7的倍数
if(Begin / 100 == 7 || Begin / 10 == 7 || Begin % 10 == 7 || Begin % 7 == 0){
// 如果符合上面几个条件我们就打印一个过
System.out.println("过");
// 用continue跳过本次循环,跳到下次循环
continue;
}
// 最后打印出全部数字
System.out.println(Begin);
下面我们来运行看一下:
可以看到有出现7的数字和7的倍数则直接打印一个过了。
3.求平方根
需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根,结果只保留整数部分,小数部分被舍弃
分析
平方根:16的平方根4,4的平方根2
10
1 * 1 = 1 < 10;
2 * 2 = 4 < 10;
3 * 3 = 9 < 10;
4 * 4 = 16 > 10;
推断:10的平方根是在3-4之间
代码中:从1开始循环,拿着数字的平方根原来的数字进行比较
如果小于的,那么就继续往后判断
如果等于,那么当前数字就是平方根
如果大于的,那么前一个数字就是平方根的整数部分
实现代码
- 键盘录入一个整数
// 1.键盘录入一个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
- 用for循环遍历
// 2.从1开始循环判断 开始:1 结束:number
for(int i = 1;i <= number;i++){
// 用i * i再跟number进行比较
if(i * i == number){
System.out.println(i + "就是" + number + "的平方根");
// 一旦找到了,循环就停止,后面的数字就不需要在找了
break;
}else if(i * i > number){
System.out.println((i - 1) + "就是" + number + "向下取整的平方根");
break;
}
}
我们来运行看一下吧:
4.求质数
需求:通过键盘输入一个数字,判断他是不是质数,如果不是就打印合数。
思路
1. 键盘输入一个正整数。
2. 判断是质数还是合数
分析
1. 如何从键盘输入一个整数。
1.导包:import java.util.Scanner;
2.创建:Scanner sc = new Scanner(System.in);
3.使用:int number = sc.nextInt();
2. 判断奇数
如果一个整数只能被1和本身整除,那么这个数就是质数,否则这个数就叫做合数
代码实现
- 由键盘输入一个正整数。
// 创建键盘输入的对象
Scanner sc = new Scanner(System.in);
// 提示用户输入一个整数
System.out.println("请输入一个正整数:");
int number = sc.nextInt();
- 由键盘输入一个正整数。
定义一个变量flag表示这个数一开始是质数
boolean flag = true;
- 判断是否质数
// 定义变量i,从2开始判断,一直判断到number-1,看看还能不能被其他数给整除
for(int i = 2;i <= number-1;i++){
if(number % i == 0){
// 如果还能被其他数给整除就表示不是质数,将flag置为false
flag = false;
break;
}
}
// 然后判断flag是true就打印是质数,如果是false就打印合数
if(flag){
System.out.println(number + "是一个质数");
}else{
System.out.println(number + "是一个合数");
}
下面我们来运行看一下吧:
猜数字小游戏
需求:生成一个1到100的随机数,5次机会,猜不中就提示随机数。
思路
1. 键盘输入猜测的数字。
2. 导入随机数包
3. 生成1到100随机数
4. 规定五次猜不出来则提示随机数
分析
1. 如何从键盘输入一个整数。
1.导包:import java.util.Scanner;
2.创建:Scanner sc = new Scanner(System.in);
3.使用:int number = sc.nextInt();
2. 如何生成随机数
1.导包:import java.util.Random;;
2.创建:Random r = new Random();
3.使用:int sjnumber = r.nextInt(100) + 1;
3. 生成1到100随机数
int sjnumber = r.nextInt(100) + 1;
4. 规定五次猜不出来则提示随机数
count == 5
代码实现
- 由键盘输入一个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要猜测的数字:");
int number = sc.nextInt();
- 生成随机数
Random r = new Random();
int sjnumber = r.nextInt(100) + 1;
- 用while循环设置为true一直循环。
// 创建一个变量用来存放当前次数
int count = 0;
while (true){
System.out.println("请输入你要猜测的数字:");
int number = sc.nextInt();
if(number > sjnumber){
System.out.println("你猜的太大啦,猜小一点吧!\n");
}else if(number < sjnumber){
System.out.println("你猜的太小啦,猜大一点吧!\n");
}else{
System.out.println("恭喜你,猜对了!");
break;
}
}
- 超过5次就提示随机数(写在while循环里面)
// 每执行一次,次数就+1
count++;
// 用if判断如果等于5次的时候就提示随机数
if(count == 5){
System.out.println("你真笨,随机数是:"+ sjnumber);
}
下面我们来看一下吧:
可以看到5次没猜中的话就提示正确的随机数。
好啦,以上就是一些常用的基础练习题,有什么不懂的可以评论在评论区,都会一一解答哟,我们下期再见!!!
==最后非常感谢您的阅读,也希望能得到您的反馈 ==