Java基础练习2

数组拷贝

需求:

输入数组然后依次遍历输出。

import java.util.Scanner;

/**
 * 目标:掌握数组拷贝
 */
public class Test05 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数组的长度");
        int length = sc.nextInt();
        int[] old = new int[length];
        for (int i = 0; i < length; i++) {
            System.out.println("请输入第"+(i+1)+"个数组元素");
            int element = sc.nextInt();
            old[i] = element;
        }
        int[] result = copy(old);
        for (int i = 0; i < result.length; i++) {
            System.out.print(result[i] + " ");
        }
    }
    /**
     * 方法要做的事情: 拷贝成一个一模一样的新数组出来
     * 方法的参数? 老数组
     * 方法的返回值? 新数组
     */
    public static int[] copy(int[] old){
        int[] newArr = new int[old.length];
            for (int i = 0; i < old.length; i++) {
                newArr[i] = old[i];
            }
            return newArr;
        }
    }

抢红包

需求:

 一个大V直播时发起了抢红包活动,分别有:9,666,188,520,99999五个红包。请模拟粉丝来抽奖,按照先来先得,随机抽取,抽完即止,注意:一个红包只能被抽一次,先抽或后抽哪一个红包是随机的。

import java.util.Random;
import java.util.Scanner;
/**
 * 目标: 完成抢红包案例。
 */
public class Test06 {
    public static void main(String[] args) {
        int[] num = {9,666,188,520,99999};
        lottery(num);
    }
    /**
     * 方法要做的事情: 模拟抽奖
     * 方法的参数? 给一个存储金额的数组
     * 方法的返回值? void
     */
     public static void lottery(int[] moneys){
         Scanner sc = new Scanner(System.in);
         Random r = new Random();
         for (int i = 0; i < moneys.length; i++) {
             System.out.println("请按任意键启动抽奖:");
             sc.next();
             while (true){
                 int index = r.nextInt(moneys.length);
                 if (moneys[index] != 0){
                     System.out.println("恭喜您,抽中了"+(moneys[index])+"元");
                     moneys[index] = 0;
                     break;
                 }
             }
         }
    }
}

找素数

需求:

输入两个数字,统计两数之间的所有素数,并输出

素数:指只能被1和该数本身整除的数,如:

分析:

第一步:使用for循环遍历并获取两数之间的每一个数

第二步:用2到该数一半的数除以每一个数,看是否能整除,看是否能整除,能则不是素数,不能则是素数

第三步:统计素数个数并返回

import java.util.Scanner;

public class Test07 {
    public static void main(String[] args) {
        //目标:完成找素数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入开始数字:");
        int start = sc.nextInt();
        System.out.println("请输入结束数字:");
        int end = sc.nextInt();
        System.out.println("当前的素数个数是:"+search(start, end));
    }
    public static int search(int start,int end){
        int count = 0;
        for (int i = start; i <= end; i++) {
            boolean flag = true;
            for (int j = 2; j <= i/2; j++) {
                    if (i % j == 0){
                        flag = false;
                        break;
                    }
                }
                if (flag){
                    System.out.println(i);
                    count++;
                }
            }
        return count++;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值