学点Java打小工_Day2Day3_一点作业

news2024/12/26 22:29:29

1 猜数字(10次机会)

随机生成[1,1000]的一个数,输入你猜的数程序会给出反馈,直到猜对或次数用尽(10次)。

    //猜数字 10次机会
    @Test
    public void guessNumber() {
        Random random = new Random();
        // [0, 1000) + 1
        // [1, 1000]
        int num = random.nextInt(1000) + 1;
        Scanner scanner = new Scanner(System.in);
        int cnt = 10;
        int num_guess;
        while (cnt > 0) {
            System.out.println("猜吧!请输入你猜的数字: ");
            num_guess = scanner.nextInt();
            System.out.println("你猜的数字是: " + num_guess);
            if (num_guess > num) {
                System.out.println("太大了");
                cnt--;
            } else if(num_guess < num) {
                System.out.println("太小了");
                cnt--;
            } else {
                System.out.println("恭喜你,猜对了");
                break;
            }
        }
        if (cnt == 0) {
            System.out.println("次数用尽,猜数失败");
        }
    }

2 打印99乘法表(双重循环)

双重for循环:
外层循环控制行数,数一下有几行就能确定外层循环。
内层循环控制列数,这一行打印多少个,到底要打印多少个要找出和当前行之间的一个关系。

    //打印99乘法表
    @Test
    public void print99Table() {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "×" + i + "=" + (i * j));
                if(j != i) {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }

  做这个时候死去的上机题突然攻击我,控制了下每行最后一个空格不输出

3 判断闰年

  也有收获,之前写的时候逻辑有一点点混乱,这次搞清楚本身其实可以拆成两个条件:
    ①能被4整除但不能被100整除
    ②能被400整除
    有点数学容斥原理那味儿(死去的高中数学)

    @Test
    public void judgeLeapYear() {
        System.out.println("请输入你要查询的年份: ");
        Scanner scanner = new Scanner(System.in);
        int year_in = scanner.nextInt();
        if ((year_in % 4 == 0 && year_in % 100 != 0) || (year_in % 400 == 0)) {
            System.out.println(year_in + "年是闰年");
            return true;
        } else {
            System.out.println(year_in + "年不是闰年");
            return false;
        }
    }

4 交换数字

    老生常谈了

    @Test
    public void exchangeNumber() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数: ");
        int num1 = scanner.nextInt();
        System.out.println("请输入第二个数: ");
        int num2 = scanner.nextInt();
        System.out.println("交换前: num1 = " + num1 + "\t" + "num2 = " + num2);
        int temp = num1;
        num1 = num2;
        num2 = temp;
        System.out.println("交换后: num1 = " + num1 + "\t" + "num2 = " + num2);
    }

    嗯,老师还提了一嘴可以有很多方法,我确实只知道这一种。随便一搜确实有很多种
    链接1
    链接2

5 收银台

编写一个收银台收款程序:
  定义输入----单价、数量、用户输入金额
  定义输出----应收金额、找零
  使用double类型变量 scanner.nextDouble();
  当总价>=500时候打八折
  考虑程序出现异常的情况,如:收款金额小于应收金额
  若收款金额大于等于应收金额,则计算找零后输出
  若收款金额小于应收金额,输出错误信息。

    这个我写得还挺“长”的,主要是有些信息执行完在控制台不显示,我又加了打印

    //收银台
    @Test
    public void recvMoney() {
        int cnt;
        double price, total, payment, change;
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入商品单价: ");
        price = scanner.nextDouble();
        System.out.println(price);

        System.out.print("请输入商品数量: ");
        cnt = scanner.nextInt();
        System.out.println(cnt);

        System.out.print("请付款: ");
        payment = scanner.nextDouble();
        System.out.println(payment);

        total = price * cnt;
        if (total >= 500) {
            System.out.println("商品总价超过500元, 给您打八折!");
            total *= 0.8;
        }
        if (payment < total) {
            System.out.println("对不起, 您的钱不够");
        } else {
            change = payment - total;
            System.out.println("找您" + String.format("%.2f", change));
        }
    }

6 打印直角三角形

输出以下结构:
1
12
123
1234
12345

    //输出直角三角形数
    @Test
    public void printRightTriangle() {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j);
            }
            System.out.println();
        }
    }

7 打印正三角形/倒三角形

在这里插入图片描述在这里插入图片描述

    public void printEquilateralTriangle(int n) {
        int m;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n - i; j++) {
                System.out.print(' ');
            }
            m = 2 * (i - 1) + 1;
            for (int j = 1; j <= m; j++) {
                System.out.print('*');
            }
            System.out.println();
        }
    }

    public void printInvertedTriangle(int n) {
        int m;
        for (int i = n; i >= 1; i--) {
            for (int j = 1; j <= n - i; j++) {
                System.out.print(' ');
            }
            m = 2 * (i - 1) + 1;
            for (int j = 1; j <= m; j++) {
                System.out.print('*');
            }
            System.out.println();
        }
    }

    //打印正三角/倒三角形
    @Test
    public void printTriangle() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入三角形阶数: ");
        int num = scanner.nextInt();
        System.out.println(num);

        System.out.print("请输入你要打印的三角形类型(1 正三角形; 2 倒三角形): ");
        int flag = scanner.nextInt();
        System.out.println(flag);

        int n = num;
        int m;

        if (flag == 1) {
            printEquilateralTriangle(n);
        } else if (flag == 2) {
            printInvertedTriangle(n);
        } else {
            System.out.println("非法输入 ");
        }
    }

  分开写了两个方法然后调用,这样比较舒服

8 求奇数偶数和

计算1-100以内所有奇数的和以及所有偶数的和,分别打印出来

    @Test
    public void printSum() {
        int sum_odd = 0;
        int sum_even = 0;
        for (int i = 1; i <= 100; i++) {
            if(i % 2 == 1) {
                sum_odd += i;
            }else {
                sum_even += i;
            }
        }
        System.out.println("sum_odd = " + sum_odd);
        System.out.println("sum_even = " + sum_even);
    }

9 输出数字

用for循环输出1—1000之间能被5整除的数,且每行输出3个

    @Test
    public void printModFive() {
        int cnt = 0;
        for (int i = 1; i <= 1000; i++) {
            if(i % 5 == 0) {
                System.out.print(i);
                cnt++;
                if(cnt % 3 != 0) {
                    System.out.print(' ');
                }
                else {
                    cnt = 0;
                    System.out.println();
                }
            }
        }
    }

10 计算阶乘

计算9的阶乘

    @Test
    public void printFactorial() {
        int ans = 1;
        for(int i = 1; i <= 9; i++) {
            ans *= i;
        }
        System.out.println(ans);
    }

  老师说还能用别的方法,我想到的是大数阶乘,那年暑假集训一道大数阶乘我做了一个晚自习。。。。
  大数阶乘1
  大数阶乘2
  其实他想说的是递归啦,那其实没啥本质区别了,能做的数还是有限的,不过确实算个进阶写法。
  后边再补吧,这周要叫开题报告、文献综述和外文翻译。想想就难受

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1532214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 Echarts + Python Flask ,我搭建了一个动态实时大屏监管系统

一、效果展示 1. 动态实时更新数据效果图 2. 鼠标右键切换主题 二、确定需求方案 支持Windows、Linux、Mac等各种主流操作系统&#xff1b;支持主流浏览器Chrome&#xff0c;Microsoft Edge&#xff0c;360等&#xff1b;服务器采用python语言编写&#xff0c;配置好python环…

linux---文件查找

知识点&#xff1a; whereis 可以搜索传统命令的可执行文件路径和说明文档 which 搜索可执行文件 #whereir包含了which locate 在数据库中进行快速查找 find . -name 文件名/文件名要求 #按文件名查找. -iname 文件名 #按文件名查找且…

【史上最全万字mysql进阶语法】

前言&#xff1a; &#x1f49e;&#x1f49e;大家好&#xff0c;书生♡&#xff0c;今天主要和大家分享一下mysql的进阶语法,数据库的分组/分页/排序/子查询以及详细案例&#xff0c;希望对大家有所帮助。 &#x1f49e;&#x1f49e;前路漫漫&#xff0c;希望大家坚持下去&am…

2024年最新Anaconda3 2024版中Jupyter Notebook安装

一、 Anaconda3 2024版下载 1.下载&#xff1a;Free Download | Anaconda 2.等待 解释&#xff1a;默认选择等等下载 &#xff0c;时间可能数分钟 3.安装 解释&#xff1a;打开刚刚下载的Anaconda Navigator&#xff0c;并如图安装低版本&#xff0c;高版本会直接报错 4. …

ES8生产实践——性能压测工具esrally

引言 什么是压测 压测&#xff0c;即压力测试&#xff0c;是指对计算机系统、软件应用或网络服务等进行负载测试&#xff0c;以模拟实际使用场景中的高负载情况&#xff0c;检验系统在压力下的性能、稳定性和可靠性。压测旨在确定系统在正常或极端负载下的性能极限&#xff0…

首个业内DNA存储技术规范发布

在DNA数据存储的检索过程中&#xff0c;采用了三个输入对应一个输出逻辑实现的算法模式来生成数据表示的模式。这一算法模式的设计是为了有效编码和解码存储在DNA分子上的信息。 其中提到的“扰动比例”δ(n)是一个关键概念&#xff0c;它衡量的是在总的细胞数目&#xff08;此…

【MySQL】图形化界面工具DataGrip安装&配置&使用

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

Redis6.0多线程的疑惑解答

1.Redis6.0之前的版本真的是单线程吗&#xff1f; Redis在处理客户端的请求是&#xff0c;包括获取(socket读)、解析、执行、内容返回(socket 写)等都有一个 顺序串行的主线程处理&#xff0c;这就是所谓的"单线程"。但如果严格来讲并不是单线程&#xff0c;除了主线…

2024蓝桥杯每日一题(并查集)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一&#xff1a;奶酪 试题二&#xff1a;合并集合 试题三&#xff1a;连通块中点的数量 试题四&#xff1a;网络分析 试题一&#xff1a;奶酪 【题目描述】 现有一块大奶酪&#xff0c;它的高度为 hℎ…

Java SE入门及基础(44)

目录 I / O流(上) 1. 什么是I / O流 过程分析 I / O的来源 Java 中的 I / O流 2. 字节流 OutputStream 常用方法 文件输出流 FileOutputStream 构造方法 示例 InputStream 常用方法 文件输入流 FileInputStream 构造方法 示例 综合练习 字节流应用场景 Java SE文…

命名空间——初识c++

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 经典的Hello Word 起航c关键字c语言的命名冲突问题域作用限定符::命名空间 namespace命名空间定义命名空间的使用1.加命名空间名称及作用域限定符2.使用…

web集群-lvs-DR模式基本配置

目录 环境&#xff1a; 一、配置RS 1、安装常见软件 2、配置web服务 3、添加vip 4、arp抑制 二、配置LVS 1、添加vip 2、安装配置工具 3、配置DR 三、测试 四、脚本方式配置 1、LVS-DR 2、LVS-RS 环境&#xff1a; master lvs 192.168.80.161 no…

数据结构与算法4-冒泡排序

文章目录 1. 认识冒泡排序2. 图示2.1 图示12.2 图示2 3. 代码 1. 认识冒泡排序 双层for循环&#xff0c;每次选出最大的数“浮”到数组的最后面&#xff1b;时间复杂度O( n 2 n^2 n2)&#xff0c;空间复杂度O(1);重复地遍历待排序的数列&#xff0c;一次比较两个元素&#xff…

HCIP配置实验(路由配置)

要求&#xff1a; 1、R6为ISP&#xff0c;接口IP地址均为公有地址&#xff0c;该设备只能配置IP地址&#xff0c;之后不能冉对其进行任何配置; 2、R1-R5为局域网&#xff0c;私有IP地址192.168.1.0/24;请合理分配; 3、R1、R2、R4&#xff0c;各有两个环回IP地址; R5, R6各有一个…

小字辈[天梯赛]

文章目录 题目描述思路AC代码 题目描述 思路 深度优先搜索 具体流程 1.读入每个人的祖先&#xff0c;标记辈分最高的老祖宗对应的下标pos 2.从pos开始dfs&#xff0c;每次判断当前遍历的深度&#xff0c;如果>原来的深度&#xff0c;更新&#xff0c;并将存储最小辈分的数组…

【C语言】文件操作揭秘:C语言中文件的顺序读写、随机读写、判断文件结束和文件缓冲区详细解析【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本篇为【C语言】文件操作揭秘&#xff1a;C语言中文件的顺序读写、随机读写、判断文件结束和文件缓冲区详细解析【图文详解】&#xff0c;感谢观看&#xff0c;支持的可以给个一键三连&#xff0c;点赞关注收藏。 前言 欢迎来到本篇博客&…

Linux编程4.9 网络编程-建立连接

1、TCP的连接与断开 三次握手与四次挥手 2、服务器端并发性处理 2.1 多进程模型 一个父进程&#xff0c;多个子进程父进程负责等待并接受客户端连接子进程: 完成通信&#xff0c;接受一个客户端连接&#xff0c;就创建一个子进程用于通信。 2.2 多线程模型 多线程服务器是…

Vue3+.NET6前后端分离式管理后台实战(四)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(四)已经发布&#xff0c; 程序源码已打包&#xff0c;感兴趣的可以关注下载。 2&#xff0c;源码打包可以下载&#xff1a;

整合qq邮箱发送

目录 &#x1f32e;1.获取qq授权码 &#x1fad3;2.引入依赖 &#x1f9c8;3.配置mail信息 &#x1f95e;4.创建实现类 &#x1f956;5.测试 1.获取qq授权码 点击开启服务&#xff0c;发送信息获取授权码 2.引入依赖 <!--邮件--><dependency><groupId&…

FL Studio for Mac 21.2.3.3586中文版的一些特点

FL Studio&#xff08;Fruity Loops&#xff09;是一款非常流行的数字音乐工作站软件&#xff0c;它可以让用户轻松地制作各种类型的音乐。前不久&#xff0c;FL Studio发布了最新的Mac版21.2.3.3586中文版&#xff0c;这个新版本的发布让广大Mac用户感到非常兴奋。本文将介绍F…