学点Java打小工——Day2Day3一点作业

news2024/12/26 0:32:43

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/1517443.html

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

相关文章

【JavaScript】JavaScript 简介 ④ ( 解释型语言 和 编译型语言 | 计算机程序本质 | 编译器 和 解释器 )

文章目录 一、 解释型语言 和 编译型语言1、计算机程序本质2、编译器 和 解释器3、编译器 分析4、解释器 分析 一、 解释型语言 和 编译型语言 1、计算机程序本质 计算机 的 程序 是在 CPU 上执行的 , CPU 上执行的只有匹配该 CPU 的机器码指令 , 不同类型的 CPU 执行的 机器码…

【django framework】ModelSerializer+GenericAPIView,如何获取HTTP请求头中的信息(远程IP、UA等)

【django framework】ModelSerializerGenericAPIView&#xff0c;如何获取HTTP请求头中的信息(远程IP、UA等) 某些时候&#xff0c;我们不得不获取调用当前接口的客户端IP、UA等信息&#xff0c;如果是第一次用Django Restframework&#xff0c;可能会有点懵逼&#xff0c;那么…

【分布式websocket】群聊中的各种难点以及解决推拉结合【第16期】

前言 群聊中未读消息如何设计&#xff0c;以及是推消息还是拉去消息如何选择是需要讨论的。推送消息是推送全量消息还是推送信号消息让客户端再去拉取。其中方案如何选型会比较纠结。 首先基本的推拉结合思路是在线用户推送消息。用户离线的话上线去拉取消息。这是简单的推拉结…

Nginx、LVS、HAProxy工作原理和负载均衡架构

当前大多数的互联网系统都使用了服务器集群技术&#xff0c;集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务&#xff0c;这些集群可以是 Web 应用服务器集群&#xff0c;也可以是数据库服务器集群&#xff0c;还可以是分布式缓存服务器集群等等。 在实际应用…

Camtasia Studio 编辑好的视频如何生成MP4

Camtasia Studio 是一款功能强大的屏幕录像和视频编辑软件&#xff0c;由 TechSmith 公司开发。它可以帮助用户轻松地录制屏幕和音频、添加注释和特效、剪辑和编辑视频&#xff0c;并导出高质量的视频文件。作为一款非常流行的视频制作工具&#xff0c;Camtasia Studio 在教育、…

论文阅读-federated unlearning via class-discriminative pruning

论文阅读-federated unlearning via class-discriminative pruning FUCP 通过类别区分性剪枝进行联邦遗忘 综述中描述&#xff1a;属于面向全局模型中的局部参数调整 利用卷积层的结构特定进行联邦忘却学习&#xff0c;wang等人提出了针对图像分类任务的联邦忘却学习算法FUCP&…

Oracle with as用法

一、简介 with…as关键字&#xff0c;是以‘with’关键字开头的sql语句&#xff0c;在实际工作中&#xff0c;我们经常会遇到同一个查询sql会同时查询多个相同的结果集&#xff0c;即sql一模一样&#xff0c;这时候我们可以将这些相同的sql抽取出来&#xff0c;使用with…as定…

ETH共识升级之路

简介 根据我们之前的介绍&#xff0c;了解到ETH网络的共识方式&#xff0c;已经从 PoW 切换到了 PoS&#xff0c;今天我们就回顾下升级之路&#xff0c;以及升级带来的影响 最早的共识机制 PoW 以太坊创建之初采用了类似比特币的工作量证明机制&#xff0c;即矿工通过计算哈希函…

【排序算法】-- 深入理解桶排序算法

概述 在计算机科学中&#xff0c;排序算法是一种对数据进行有序排列的重要技术。桶排序&#xff08;Bucket Sort&#xff09;是一种常见的排序算法&#xff0c;它通过将数据分到有限数量的桶中&#xff0c;并对每个桶中的数据分别排序&#xff0c;最后按照顺序将所有桶中的数据…

PBKDF2算法:保障密码安全的利器

title: PBKDF2算法&#xff1a;保障密码安全的利器 date: 2024/3/14 16:40:05 updated: 2024/3/14 16:40:05 tags: PBKDF2算法密码安全性迭代盐值密钥 PBKDF2算法起源&#xff1a; PBKDF2&#xff08;Password-Based Key Derivation Function 2&#xff09;算法是一种基于密码…

远程办公、企业内网服务器的Code-Server上如何配置使用CodeGeeX插件

很多小伙伴都会在工作中使用code-server&#xff0c;比如说远程办公&#xff0c;当你需要在家访问你的工作环境&#xff0c;亦或者是你们公司的Docker是放入服务器中。code-server 无疑是最好的选择&#xff0c;它可以让你通过互联网安全地连接到远程服务器上的开发环境并且使用…

import gdal 报错

1.下载gdal https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal 2.安装正确版本 &#xff08;1&#xff09;查看python版本 python -v我的版本Python 3.7.9 建议下载 GDAL-3.4.2-cp37-cp37m-win_amd64.whl &#xff08;2&#xff09;放到Scripts文件夹下 执行 pip install GD…

【mask】根据bbox提示同一张图片生成多个矩形框掩码

前提&#xff1a;使用labelimg得到bbox 1.代码 import cv2 import numpy as np# 读取图片 image cv2.imread("D:\Desktop\mult_test\images\SL03509990_1694761223500.jpg")# 假设我们有多个目标的ROI&#xff08;感兴趣区域&#xff09; rois [(565,635,1006,85…

1.绪论

目录 1.1 Web原理基础 1.1.1 Internet与万维网 1.1.2 Web架构 1.2 Web前端技术基础 1.2.1 HTML技术 1.2.2 CSS技术 1.2.3 JavaScript技术 1.3 Web前端新技术 1.3.1 HTML5技术 1.3.2 CSS3技术 1.3.3 jQuery技术 1.4 Web开发工具 1.1 Web原理基础 1.1.1 Internet与万…

浅谈路由器基本结构与工作原理

目录 一、结构 1.1 输入端口 1.2 交换结构 1.3 输出端口 1.4 路由选择处理器 二、输入端口处理和基于目的地转发 三、交换 四、输出端口处理 五、何时出现排队 5.1 输入排队 5.2 输出排队 一、结构 下图是一个通用路由器体系结构的总体试图视图&#xff0c;其主要由…

mysql中动态行转列

场景&#xff1a;不确定转换完有多少列且转换完以后要存入临时表以供其他查询使用。 原始数据如下&#xff1a; 一张生产卡号对应多种添加剂&#xff0c;有多少种添加剂就有多少行数据 转换后数据如下&#xff1a; 一张生产卡号对应多种添加剂&#xff0c;有多少种添加剂就有…

2023版IDEA永久破解教程带patch.exe破解程序

2023版IDEA永久破解教程带patch.exe破解程序 第零步&#xff1a;百度云盘获取程序第一步&#xff1a;关闭电脑的病毒和危险防护&#xff08;目的是避免电脑自动清除破解程序&#xff09;1.找到电脑的 病毒和威胁防护2.蓝色按钮表示防护处于开启状态3.关闭成功会展示“实时保护已…

聊聊vue的nextTick方法

前言 nextTick是面试常考的vue中的一个重要知识点&#xff0c;但是很多小伙伴常常无法真正的理解nextTick的执行机制&#xff0c;并且背后包含的许多vue的重要知识。本文会把nextTick聊的非常细&#xff0c;让大家彻底搞懂它。 正文 那么在nextTick正式登场之前呢&#xff0…

深度解析Elasticsearch索引数据量过大的优化与部署策略

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 1. 分片和副本策略 1.1分片策略 1.1.1 数据量 1.1.…

Gitee 服务器

Git 服务器集成 1. 创建仓库 2. 远程仓库简易操作指令 # Git 全局设置&#xff0c;修改成自己的信息 git config --global user.name "Muko" git config --global user.email "txk0x7d2163.com" # 创建 git 仓库&#xff0c;基本操作指令和其他远程仓库一…