用编程思想解决问题

news2024/11/25 23:02:46

1.是什么

  • 分解法:将复杂的问题分解为一个个小又容易的问题,再逐一解决

  • 先常后变:先使用常量来解决问题后使用变量来代替常量,使代码变得更灵活

例题一:

请你使用Switch分支结构根据输入的分数来定成绩所在区间:

0—60不及格
60—80良好
80—100优秀

        我们都知道像这种划分范围的题目使用 if-else 分支结构很容易做,那么要求使用Switch分支结构就不好做了,为什么呢?因为Switch分支结构使用case划分情况,case子句中的值必须是常量,又不能使用区间来表示,那么怎么使用常量来解决表示区间的问题呢?下面我将来分析:

        1.首先分解问题:区间分解为简单熟悉的问题,如果我们将区间缩小为(0-9),先考虑只有个位的情况,分析一下特殊情况,我们最多可以分为10种不同的情况(0,1,2,3,4,5,6,7,8,9),那么最少是一种情况那就是分数在区间(0-9)都表示不及格在不考虑case穿透的情况下,你会怎么表示呢?

        显然,第一种最多划分的情况很容易解决,那么最少的一种情况就需要找到10个数字的共性(即0-9的共同之处),也就是共同的特点,那么从形式上来看,可以看出:

那么我们在编程中如何表示出他们的共性呢?

        我们可以使用除法 / 将(0-9)的数变成 0 ,那就是除以10,因为除法是取整数所以0-9的数都为0,所以我们就解决了0-9 都为一种情况的问题

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个数字:");
         double num = scanner.nextDouble();
       switch((int)num/10){
         case 0://用 0 这种情况表示0-9
             System.out.println("不及格");
             break;
         default:
             System.out.println("其他");
     }
    }
}

注:Switch表达式为什么要用强制类型转换,请看另一期期刊

#Switch分支结构的细节-CSDN博客

        既然能用 0 来表示(0-9)那么同理:(10-19)的数字用 1 来表示是不是也是这个道理呢?回答是对的。再结合case穿透的特点那么我们就可以使用Switch表示(0-99)的范围了。那么还有一个重要的问题:不能单独表示100!!!因为10可以表示(100-109),那么又该如何解决呢?

那么还是要借助if条件判断!不知道兄弟们有没有更好的解决方法,欢迎到评论区留言!

现在解决例题一:

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
            double num = scanner.nextDouble();
            if (num>=0 && num<=100) {
            switch((int)num/10){
                case 10:
                case 9:
                case 8: System.out.println("优秀");
                    break;
                case 7:
                case 6:
                    System.out.println("良好");
                    break;
                case 5:
                case 4:
                case 3:
                case 2:
                case 1:
                case 0:
                    System.out.println("不及格");
                    break;
                
            
            }
            
        }else{System.out.println("不在范围(0-100)")}


    }
}

    好啦,今天的干货就到这啦~    有什么疑问的小伙伴欢迎到评论区留言!


猜你感兴趣的方面:

#如何区分++i和i++???
#强制类型转换是什么?
#自动类型转换有哪些细节???
#JVM、JRE、JDK之间的关系
#面向对象和面向过程有什么区别
#彻底区分:基本数据类型、引用数据类型和包装类型
#值传递和引用传递的区别
#按位与(&)、按位或(|)、按位异或(^)、按位取反(~)
#面向对象的三大特征
#说一说你对多态的理解

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

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

相关文章

若依 ruoyi-vue 获取上一页路由 获取返回上一页路径 登录后跳转其他页面 登录进入后跳转至动态路由的第一个路由

参考文章:若依框架登录后跳转其他页面&获取不同的菜单&登录进入后跳转至动态路由的第一个路由 需求&#xff1a;登录成功&#xff0c;默认跳转至后端返回的动态路由的第一个路由 src/store/modules/permission.js 将动态路由的第一个路由存到缓存中 import cache …

多人开发小程序设置体验版的痛点

抛出痛点 在分配任务时,我们将需求分为三个分支任务,分别由前端A、B、C负责: 前端A: HCC-111-实现登录功能前端B: HCC-112-实现用户注册前端C: HCC-113-实现用户删除 相应地,我们创建三个功能分支: feature_HCC-111-实现登录功能feature_HCC-112-实现用户注册feature_HCC-1…

新手向教学,分分钟搭建个人定制化的 ChatgptGPT 聊天机器人

对话机器人变得越来越流行&#xff0c;它为用户提供了与技术互动的方式。OpenAI 的“GPT”模型让开发者能够创建复杂的对话机器人。 在本教程中&#xff0c;我们将使用 Python 和 OpenAI API 在运行 Ubuntu 的 DigitalOcean Droplet 上构建并部署你自己的终端 ChatGPT 机器人。…

基于SpringBoot+Vue+MySQL的校园食堂订餐

系统展示 用户前台界面 管理员后台界面 系统背景 随着信息技术的飞速发展和互联网的普及&#xff0c;传统校园食堂的运作模式已难以满足现代学生日益增长的便捷性、个性化需求。学生们希望能够在忙碌的学习生活中&#xff0c;通过更加高效、便捷的方式完成就餐选择&#xff0c;…

【算法篇】数组类(笔记)

目录 一、二分查找 1. 方法一 2. 方法二 二、移除元素 1. 暴力破解 2. 双指针法 三、有序数组的平方 双指针法 四、长度最小的子数组 1. 暴力破解 2. 滑动窗口 五、螺旋矩阵 II 一、二分查找 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09;https://leet…

深入理解Java虚拟机:Jvm总结-虚拟机字节码执行引擎

第八章 虚拟机字节码执行引擎 8.1 意义 不受物理条件制约地定制指令集与执行引擎的结构体系&#xff0c;能够执行那些不被硬件直接支持的指令集格式。输入的是字节码二进制流&#xff0c;处理过程是字节码解析执行的等效过程&#xff0c;输出的是执行结果 8.2 运行时栈帧结构…

jupyter出错ImportError: cannot import name ‘np_utils‘ from ‘keras.utils‘ ,怎么解决?

文章前言 此篇文章主要是记录一下我遇到的问题以及我是如何解决的&#xff0c;希望下次遇到类似问题可以很快解决。此外&#xff0c;也希望能帮助到大家。 遇到的问题 出错&#xff1a;ImportError: cannot import name np_utils from keras.utils &#xff0c;如图&#xf…

Metasploit Pro 4.22.3-2024081901 (Linux, Windows) - 专业渗透测试框架

Metasploit Pro 4.22.3-2024081901 (Linux, Windows) - 专业渗透测试框架 Rapid7 Penetration testing, release Aug 19, 2024 请访问原文链接&#xff1a;https://sysin.org/blog/metasploit-pro-4/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页…

SonicWall SSL VPN曝出高危漏洞,可能导致防火墙崩溃

近日&#xff0c;有黑客利用 SonicWall SonicOS 防火墙设备中的一个关键安全漏洞入侵受害者的网络。 这个不当访问控制漏洞被追踪为 CVE-2024-40766&#xff0c;影响到第 5 代、第 6 代和第 7 代防火墙。SonicWall于8月22日对其进行了修补&#xff0c;并警告称其只影响防火墙的…

代码随想录27期|Python|Day51|​动态规划|​115.不同的子序列|​583. 两个字符串的删除操作​|72. 编辑距离

115. 不同的子序列 本题是在原来匹配子序列的基础上增加了统计所匹配的子序列个数&#xff0c;也就是dp数组的定义和更新公式和原来的有所区别。 1、dp数组的定义 dp[i][j]表示以i-1和j-1为末尾的字符串中&#xff0c;给定字符串s包含目标字符串t的个数。注意这里不是长度。…

vs2019成功连接数据库mysql

②在vs2019中创建新项目&#xff0c;注意x64 ③ 右击项目打开属性 ④添加include路径 ⑤添加lib路径 点击确定后点击应用 ⑥ 点击全部确定 ⑦ ⑧启动mysql 进入数据库&#xff1a; 在数据库中创建student的表 ⑨在va2019中输入下面代码测试 注意&#xff1a;密码换成自己…

大数据Flink(一百一十六):Flink SQL的时间属性

文章目录 Flink SQL的时间属性 一、Flink 三种时间属性简介 二、Flink 三种时间属性的应用场景 三、​​​​​​​SQL 指定时间属性的两种方式 四、​​​​​​​​​​​​​​SQL 处理时间DDL定义 五、​​​​​​​​​​​​​​SQL 事件时间DDL定义 Flink SQL的时…

Nature子刊|C4平台助力单细胞多组学分析,揭秘睾丸生殖细胞瘤的分子特征

在精准医疗的大潮中&#xff0c;单细胞多组学技术正成为研究肿瘤微环境的强有力工具。最近&#xff0c;一项发表在《Nature Communications》的重磅研究&#xff0c;就利用了包括DNBelab C Series在内的平台设备&#xff0c;对睾丸生殖细胞瘤&#xff08;Seminoma&#xff09;进…

矩阵分析 学习笔记3 多项式矩阵 jordan标准型

就是说这个矩阵里面的各个元素都是多项式&#xff0c;多项式的主角是类目大&#xff08;自变量&#xff09;。 多项式矩阵的秩是啥呢&#xff1f; 0多项式就是完全0的那种&#xff0c;就一个0&#xff0c;类目大都没有了。 多项式矩阵的秩和带一个类目大进去变成普通矩阵的秩不…

最大间距问题

LeetCode164 最大间距 基数排序 #include <iostream> #include <vector> using namespace std;class Solution { public:int maximumGap(vector<int>& nums) {int nnums.size();if(n<2) return 0;int exp1;int Maxnums[0];vector<int> buf(n)…

WD mybook10T硬盘exfat变0字节恢复方法

WD的mybook系列应该全部是3.5寸台式机机械硬盘然后加了盒子做成了移动存储&#xff0c;单盘容量已经极高了&#xff0c;此类盘出厂的文件系统一般为exfat&#xff08;可能是厂商为了方便mac客户使用&#xff09;。下边这个案例就是我们经常遇到的exfat变0字节。 故障存储:WD m…

用网卡的ap模式抓嵌入式设备的网络包

嵌入式设备不像pc上&#xff0c;有一些专门的工具比如wareshark来抓包&#xff0c;嵌入式设备中&#xff0c;有的可能集成了tcpdump&#xff0c;可以用来进行简单的抓包&#xff0c;但是不方便分析&#xff0c;况且有的嵌入式设备不一定就集成了tcpdump工具。 关于tcpdump工具…

[001-03-007].第07节:Redis中的事务

我的后端学习大纲 我的Redis学习大纲 1、Redis事务是什么&#xff1a; 1.可以一次执行多个命令&#xff0c;本质是一组命令的集合。一个事务中的所有命令都会序列化&#xff0c; 按顺序地串行化执行而不会被其他命令插入&#xff0c;不许加塞2.一个队列中&#xff0c;一次性、…

AI+RPA机器人 实现自动调用 kimi 的 AI 对话功能(内附使用教程)

前言 今天尝试写一个用RPA自动调用kimi的AI对话功能。 把这个写好之后&#xff0c;就是后面其他一切AI相关的基础&#xff0c;比如自动用AI写文章啊&#xff0c;比如搭建一个微信AI机器人啊等等&#xff0c; 都能用到今天实现的AI对话功能。 话不多说&#xff0c;直接看思路…

在 Windows 中使用系统文件检查器

DiSM.exe /Online /Cleanup-image /Restorehealth