内容专栏:【JAVA】
本文脉络:JAVA基础练习题
本文作者:Melon_西西
发布时间 :2023.7.17
目录
1.猜数字游戏:
知识点:如何生成想要的随机数,如何设置死循环。
2.判断素数
知识点:JAVA中开平方用Math.sqrt(),这个不是包。
3.输入三个数找最大的数
知识点:(表达式)?a : b;,表达式成立结果为a否则为b
4.打分方案
5. 输出1~100中所有包含9的数
6. 计算1/1+1/2+1/3+1/4+1/5……+1/99+1/100的值
计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值
知识点:如何实现正负号的交替
7.水仙花数(100000以内)
知识点:思路编辑
8.三次机会输入密码
知识点:字符串判断是否相等不可以用==判断,用pass.equals( "123456")
9.给距离选择交通工具
10.求平均年龄
知识点:简单循环输入,输出两位小数
1.猜数字游戏:
系统自动生成一个随机整数(1-100),然后由用户输入一个猜测的数字.如果输入的数字比该随机数小,提示"低了",如果输入的数字比该随机数大,提示“高了",如果输入的数字和随机数相等,则提示"猜对了”.
思路:系统生成随机数,注意随机数的范围如何取。设置死循环,猜对了用break跳出循环,否则无限循环猜数字:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Text01 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
Random random = new Random(); //生成随机数
int randNum=random.nextInt ( 101); //[0,101);括号里的bound不是自己输入的
//如果要50-100的整数,random.nextInt(51)+50 =[0,51)+50;
while (true){//死循环,里面设置break来跳出循环
System.out.println("请输入你猜的数字");
int num=scanner.nextInt();
if(num
思路:一个数除余2到它的开平方,如果除余==0那么不是素数,如果直到它的开平方都没有除余==0,那么进行到最后一步时i会大于它的开平方,证明他是素数
int n = scanner.nextInt();
int i = 2;
for (; i <= Math.sqrt(n); i++) {
if(n % i == 0) {
System.out.println(n+"不是素数" );
break;
}
}
//有两种情况:1、不符合循环条件2、因为遇到了break
if(i > Math.sqrt(n)) {
System.out.println(n + "是素数!");
}
import java.util.Scanner;
public class Text02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入三个数字" );
int a=scanner.nextInt();
int b=scanner.nextInt();
int c=scanner.nextInt();
int max = (a > b) ? a : b;
max = (max > c) ? max : c;
System.out.println("这三个数的最大值是= " + max);
}
}
一套打分方案:正确数量在0~10时,每题6分 正确数量在11~20时,第11~20题,每题2分正确数量在21~40时,第21~40题,每题1分,实现该计分程序.输入做对的题目数量n,输出得分. (0<=n<=40)
import java.util.Scanner;
public class Text03 {
public static void main(String[] args) {
System.out.println("请输入做对的题的数目:");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int sum = 0;
if (n >= 0 && n <= 40) {
if (n <= 10) {
sum = n * 6;
} else if (n <= 20) {
sum = 60 + (n - 10) * 2;
} else {
sum = 60 + 20 + (n - 20) * 1;
}
System.out.println("总分为=" + sum);
} else {
System.out.println("题目输入错误");
}
}
}
改编:输出1~100中9的个数,那么用else不用else if
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <= 100; i++) {
if (i / 10 == 9) {//十位是9
count++;
} else if (i % 10 == 9)//个位是9
//如果求求1~100中有多少个9,这里用else不用else if,结果是20,差在99上
{
count++;
}
}
System.out.println(count);//19
}
public static void main(String[] args) {
//计算1/1+1/2+1/3+1/4+1/5……+1/99+1/100的值:
double sum1=0;
for(int i = 1 ; i<=100 ; i++){
sum1 += 1.0/i;//这里是1.0,i默认int类型
}
System.out.println(sum1);
//计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值
double sum=0;
int flg=1;
for(int i = 1 ; i<=100 ; i++){
sum += 1.0/i*flg;
flg=-flg;//第一次flg为正,第二次变负,实现正负号变换
}
System.out.println(sum);
}
输出所有的100000以内的水仙花数:
如三位数水仙花数:abc=a*3+b*3+c*3,如四位数的abcd=a*4+b*4+c*4+d*4
public class Text01 {
public static void main(String[] args) {
for (int i = 1; i <= 999999; i++) {
//i == 123
int count = 0; //记录位数
int tmp = i;
while (tmp != 0) {
tmp /= 10;
count++;
}
tmp = i; //123
int sum = 0;
while (tmp != 0) {
sum += Math.pow(tmp % 10, count);//Math.pow(a,b)是a的b次方
tmp /= 10;
}
if (sum == i) {
System.out.println(i);
}
}
}
}
public class Text01 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int count = 3;
while (count !=0) {
System.out.println("请输入你的密码:你还有"+ count+"次机会! ");
String pass = in.nextLine();
if(pass.equals( "123456")){
System.out.println("登录成功! ");
break;
}else {
count--;
System.out.println("密码错误!");
}
}
}
输入路程,判断用什么交通方式快:步行没交1.2米,骑车每秒3.0米,骑自行车额外花50秒
输入一个整数n表示距离,输出“骑车”,或“走路”或“一样快”
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
double timeWork = n / 1.2;
double timeRide = n / 3.0 +50;
if(timeWork>timeRide){
System.out.println("骑车");
}else if( timeWork
求平均年龄有若干的人,输入每个人的年龄,求平均年龄,保留小数点后两位输入:
第一行:整数n(1
public class Text01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入人数:" );
int n = scanner.nextInt();
double sum =0;
for(int i=1;i<=n;i++){
System.out.println("输入第" + i + "个人的年龄");
int a = scanner.nextInt();
sum+=a;
}
System.out.printf("平均年龄为 %.2f",sum/n);
}