【JAVA百炼成仙】特别篇——百钱百鸡、猜数字、双色球

举报
桃花键神 发表于 2022/04/17 12:13:40 2022/04/17
【摘要】 【JAVA百炼成仙】特别篇——百钱百鸡、猜数字、双色球

🔎这里是JAVA成仙路,关注我学习JAVA不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

前言:本章展示了三个基础小案例,代码中有详细注释。

JAVA成仙路从基础开始讲,后续会讲到JAVA高级,中间会穿插面试题和项目实战,希望能给大家带来帮助!

@[TOC]

一、百钱百鸡

问题描述: 一百元购买一百只公鸡,母鸡,小鸡。
公鸡一只5元,母鸡一只3元,小鸡三只,一元。
一百元必须花完,必须买100只鸡。

分析:
一百元全买公鸡,可以买20只。所以公鸡最多20只
一百元全买母鸡,可以买100/3只。所以母鸡最多100/3只
一百元全买小鸡,可以买300只,但是最多买100只鸡,所以最多100只。
定义三个循环嵌套
第一个循环公鸡的数量
第二个循环母鸡的数量
第三个循环小鸡的数量
代码如下:

//百钱百鸡
    public static void main(String[] args) {

        for (int i = 0; i <= 20; i++) {//定义公鸡初始值为0,每次循环加一只,最多20只
            for (int j = 0; j <= 100 / 3; j++) {//定义母鸡初始值为0,每次循环加一只,最多100/3只
                for (int k = 0; k <= 100; k++) {//定义小鸡初始值为0,每次循环加一只,最多100只
                    if (i * 5 + j * 3 + k / 3 == 100 && k % 3 == 0 && i + j + k == 100) {//判断鸡的价值总额等于100并且总数也是100而且小鸡的数量需要是3的倍数,不然钱花不完
                        System.out.printf("公鸡:%2d母鸡:%2d小鸡:%2d", i, j, k);//输出公鸡母鸡小鸡的个数
                        System.out.println();//换行
                    }
                }
            }
        }

    }

二、猜数字小游戏

执行代码,输入你猜的数字。一共十次机会,输入“不想玩了”可以退出游戏。如果输入其他字符将输入错误,重新输入。

public static void main(String[] args) {

        {
            Random ran = new Random();//实例化随机对象
            int b = ran.nextInt(100) + 1;//随机生成一个数字作为答案
            int i;

            for (i = 0; i < 10; i++) {//给游戏设定一个次数,最多输入10次
                System.out.println("请输入一个数:");

                Scanner a = new Scanner(System.in);//实例化一个输入流对象
                if (a.hasNextInt()) {//判断输入的书否为int类型

                    var c = a.nextInt();//将输入的值赋给c


                    if (c < b) {//判断c是否小于答案,如果是就输出下面这段话
                        System.out.printf("太小了,还剩%2d次机会", 9 - i);
                        System.out.println();
                    } else if (c > b) {//判断c是否大于答案,如果是就输出下面这段话
                        System.out.printf("太大了,还剩%2d次机会", 9 - i);
                        System.out.println();
                    } else {//否则就是等于答案
                        System.out.println("猜对了");
                        System.out.println("游戏结束,获胜");
                        break;
                    }
                } else {//如果输入的不是int类型,运行下面这段代码
                    if ("不想玩了".equals(a.next())) {//判断输入的是否为不想玩了这几个字,如果是就执行下面这句话
                        System.out.println("结束游戏,不玩了");
                        break;
                    } else {//否则就输出下面这段话
                        System.out.println("输入错误");
                        i--;//i-1 此次输入不算次数
                    }

                }
            }
            if (i == 10) {//判断输入次数是否为10次,如果为十次就输出下面这段话
                System.out.println("游戏结束,失败");
            }
        }
    }

三、双色球随机摇号

随机生成6个红色球 和1个篮色球
蓝色球的数值范围(1-16)
红色球范围(1-33)

//双色球选号

    public static void main(String[] args) {
        Random ran = new Random();//实例化一个随机对象
        int a = ran.nextInt(16) + 1;//随机生成一个一到十六之间的数
        System.out.printf("蓝:%02d", a);//输出篮球
        System.out.println(" ");
        System.out.print("红:");
        int[] b = new int[6];//定义一个数组长度为6
        Set<Integer> c = new HashSet<>();//实例化一个集合对象

        while (c.size() != 6) {//判断集合的长度是否为6,不为6就执行下面代码
            c.add(ran.nextInt(33) + 1);//向集合中添加一个一到33之间的数字


        }
        for (int i : c) {
            System.out.printf("%02d ", i);//遍历输出集合中的数字

        }

    }
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。