java学习 习题练习 Demo32~75

java学习 习题练习 Demo32~75

Demo32
在这里插入图片描述

解题思路:

题中数据:1.电脑产生随机数 2.用户输入数字

题目要求:用户随机输入数字与电脑产生的随机数做比较,直到用户猜中该随机数是什么程序结束

步骤:

1.使用Random包产生(伪)随机数

2.使用while循环语句

3.在while循环语句中提示用户输入数字

4.在while循环语句中判断该数字是否与随机数大小一致,一致则结束,不一致提示用户改变数字大小,直至一致

代码:

import java.util.*;
public class Demo32 {
   
    public static void main (String[] args) {
   
        Scanner input = new Scanner(System.in);
        
        //使用Random包产生一个1~100的伪随机数
        Random random = new Random();
        int x = random.nextInt(101);
        
        //1.提示输入数字 2.判断随机数与输入数字是否一致
        
        while (true) {
   
            
            System.out.print("Enter your guess:");
            int num = input.nextInt();
            
            if (num > x) {
   
                System.out.println("偏大了");
            } else if (num < x) {
   
                System.out.println("偏小了");
            } else {
   
                System.out.println("猜中了");
                break;
            }
        }
    }
}

Demo33
在这里插入图片描述

解题思路:

题中数据:输入的两个数字,以及输出的最大公约数

题目要求:生成两个数字的最大公约数

步骤:

1.提示用户输入两个整数

2.选出两个数中较小的一个(比如16和24中,最大公约数应从16~1中寻找,并且最大公约数可能就是两数中较小的那一个,如4和8,最大公约数便是4)

3.从两数中较小的(包括该数)一个自它开始向下遍历

4.判断每一个被遍历的数是否为最大公约数

5.输出结果

代码:

import java.util.Scanner;
public class Demo33 {
   
    public static void main(String[] args) {
   
        Scanner input = new Scanner(System.in);
        System.out.print("Enter number1:");
        int number1 = input.nextInt();
        System.out.print("Enter number2:");
        int number2 = input.nextInt();
        
        //比较两数大小,选择小的那个
        int min = number1 < number2 ? number1 : number2;
        for (int i = min; i >= 1; i--) {
   
            
            //自小的数字(包括该数)开始向下判断最大公约数
            if (number1 % i == 0 && number2 % i == 0) {
   
                System.out.println(i);
                break;
            }
        }
    }
}

Demo34

在这里插入图片描述

解题思路:

题中数据:用户输入的数字、10为A、11为B、12为C、13为D、14为E、15为F

题目要求:将用户输入的十进制数转换为16进制数

步骤:

1.提示用户输入数字

2.将十进制数转换为16进制数

3.输出

代码:

import java.util.*;
public class Demo34{
   
    public static void main(String[] args){
   
        Scanner input= new Scanner(System.in);
        System.out.print("请输入一个数字");
        int num = input.nextInt();
        String hex = "";
        
        while (num != 0) {
   
            int g = num % 16;
            if (g < 10) {
   
                hex = g + hex;
            } else {
   
                hex = (char)(g - 10 + 65) + hex;
            }
            num /= 16;
        }
        System.out.println(hex);
    }
}

Demo36
在这里插入图片描述

解题思路:

题中数据:前50个素数

题目要求:打印前50个素数,每行打印10个

步骤:

1.创建素数个数统计

2.创建每行个数统计

3.利用循环遍历数字,并且判断遍历的每一个数字是否为素数,若为素数则统计,直到前50个素数被统计完

4.判断每行是否有10个数字,若有十个则换行

5.输出

代码:

public class Demo36 {
   
    public static void main(String[] args) {
   
        int count = 0;
        int rownum = 0;
        for(int i = 2; count < 50; i++){
   
            int isprime = 1;
            for(int n = 2; n < i; n++)
                if( i % n == 0){
   
                    isprime = 0;
                    break;
                }
            if(isprime == 1){
   
                if(rownum % 10 == 0){
   
                    System.out.println();
                }
                System.out.print(i + "\t");
                rownum += 1;
                count += 1;
            }
        }
    }
}

Demo37
在这里插入图片描述

解题思路:

题中数据:输入的n个整数、判断正数有多少个、负数有多少个、总和、平均值

题目要求:输入n个整数并且最后一个必须

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值