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

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.mfbz.cn/a/457372.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQLiteC/C++接口详细介绍之sqlite3类(六)

快速前往文章列表&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;五&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;七&#xff09; 19. sqlite3_changes与sqlite3_changes64 是SQLite中用…

CSDN 编辑器设置图片缩放和居中

CSDN 编辑器设置图片缩放和居中 文章目录 CSDN 编辑器设置图片缩放和居中对齐方式比例缩放 对齐方式 Markdown 编辑器插入图片的代码格式为 ![图片描述](图片路径)CSDN 的 Markdown 编辑器中插入图片&#xff0c;默认都是左对齐&#xff0c;需要设置居中对齐的话&#xff0c;…

9种分布式ID生成之美团(Leaf)实战

​​​​​ 前几天写过一篇《一口气说出 9种 分布式ID生成方式&#xff0c;面试官有点懵了》&#xff0c;里边简单的介绍了九种分布式ID生成方式&#xff0c;但是对于像美团&#xff08;Leaf&#xff09;、滴滴&#xff08;Tinyid&#xff09;、百度&#xff08;uid-generator&…

多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测

多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.M…

三个表联合查询的场景分析-场景1:a表关联了b表和c表

本场景对应情景如下&#xff1a; 三个数据表&#xff0c;一个表的两个字段分别关联了另外两个表各自的id数据&#xff0c;可能包含多个id&#xff08;两个1对多关联&#xff09;。 目录 数据表准备 需求1、查询c表的列表数据&#xff0c;要求获得关联的b表中的name&#xf…

OceanBase中binlog service 功能的试用

OBLogProxy简介 OBLogProxy即OceanBase的增量日志代理服务&#xff0c;它可与OceanBase建立连接并读取增量日志&#xff0c;从而为下游服务提供了变更数据捕获&#xff08;CDC&#xff09;的功能。 关于OBLogProxy的详尽介绍与具体的安装指引&#xff0c;您可以参考这篇官方OB…

【深度学习笔记】9_8 区域卷积神经网络(R-CNN)系列

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 9.8 区域卷积神经网络&#xff08;R-CNN&#xff09;系列 区域卷积神经网络&#xff08;region-based CNN或regions with CNN feature…

Unreal发布Android在刘海屏手机上不能全屏显示问题

Unreal 4.27发布Android在刘海屏手机上不能全屏显示问题 Android设置全屏刘海屏全屏设置4.27设置刘海屏在部分手机不能显示问题 Android设置全屏 AndroidManifest.xml文件配置 ...<activity android:name"com.epicgames.ue4.GameActivity" android:label"st…

Spring基础——使用注解开发SpringMVC

目录 配置SpringMVC的初始化信息配置ServletWebApplicationContext配置RootWebApplicationContext配置ServletContext 创建Controller控制器配置Controller响应路径接收用户传递参数接收JSON数据接收简单类型对象封装参数 接收数组类型 Restful 文章源码仓库&#xff1a;Spring…

bootstrap企业网站前端模板

介绍 企业网站前端模板 软件架构 前端所用技术html/css/js/jquery 前端框架bootstrap 安装教程 浏览器本地路径访问发布到服务器比如&#xff08;tomcat/nginx等&#xff09;云服务器/虚拟机 网站效果图 网站预览 点击预览 源码地址 https://gitee.com/taisan/company…

【镜像转存】利用交互式学习平台killercoda转存K8S镜像至Docker私人仓库

文章目录 1. 镜像转存需求2. 注册并登陆 killercoda URL3. 打开playground4. 在线拉取K8S镜像并打上标签5. 推送K8S镜像到Docker私有仓库6. 登陆Docker私有仓库查看 1. 镜像转存需求 因K8S镜像在不开代理的情况下&#xff0c;拉取超时、下载缓慢&#xff0c;导致镜像拉取不下来…

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

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

WPF —— TabControl、StackPanel 控件详解

1 TabControl简介 表示包含多个项的控件&#xff0c;这些项共享屏幕上的同一空间。 TabControl有助于最大程度地减少屏幕空间使用量&#xff0c;同时允许应用程序公开大量数据。 TabControl包含共享同一屏幕空间的多个 TabItem 对象。一次只能看到 TabControl 中的一个 Ta…

交换机/路由器的存储介质-华三

交换机/路由器的存储介质-华三 本文主要介绍网络设备的存储介质组成。 ROM(read-only memory&#xff0c;只读存储器) 用于存储 BootROM程序。BootROM程序是一个微缩的引导程序&#xff0c;主要任务是查找应用程序文件并引导到操作系统&#xff0c;在应用程序文件或配置文件出…

AJAX 01 AJAX 概念和 axios 使用

2.27 AJAX 学习 AJAX 1 入门01 AJAX 概念和 axios 使用axios 使用案例 02 认识 URLURL组成 03 URL 查询参数axios&#xff0d;查询参数案例 &#xff1a;地区查询 04 常用请求方法和数据提交axios 请求配置axios 错误处理 05 HTTP协议-报文① 请求报文作用&#xff1a;错误排查…

uniapp微信小程序_自定义交费逻辑编写

一、首先看最终效果 先说下整体逻辑,选中状态为淡紫色,点击哪个金额,充值页面上就显示多少金额 二、代码 <view class"addMoney"><view class"addMoneyTittle">充值金额</view><view class"selfaddmoney" :class"{…

力扣日记3.14-【贪心算法篇】376. 摆动序列

力扣日记&#xff1a;【贪心算法篇】376. 摆动序列 日期&#xff1a;2024.3.14 参考&#xff1a;代码随想录、力扣 376. 摆动序列 题目描述 难度&#xff1a;中等 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;…

【总结】服务器无法连接外网,设置http代理解决

问题 某天想要在服务器上下载编译github上某开源项目&#xff0c;结果发现访问不了外网。 于是找运维&#xff0c;运维给了个http代理服务器地址。简单操作后&#xff0c;就可以访问外网了。 解决 在需要访问外网的机器上&#xff0c;执行以下命令&#xff1a;http_proxyhtt…

rust学习(简单链表)

编写一个简单链表&#xff0c;主要遇到的问题就是next指针&#xff08;按照C的写法&#xff09;的数据如何定义。按照网上的建议&#xff0c;一般定义如下&#xff1a; struct Node {pub value:u32,pub next:Option<Rc<RefCell<Node>>>, //1 }1.用Option主要…

GoLang:云原生时代致力于构建高性能服务器的后端语言

Go语言的介绍 概念 Golang&#xff08;也被称为Go&#xff09;是一种编程语言&#xff0c;由Google于2007年开始设计和开发&#xff0c;并于2009年首次公开发布。Golang是一种静态类型、编译型的语言&#xff0c;旨在提供高效和可靠的软件开发体验。它具有简洁的语法、高效的编…