Java题集综合实践——简易计算器制作

news2024/9/20 12:37:28

此系列文章收录大量Java经典代码题(也可以算是leetcode刷题指南),剩余文章指路Java题集。希望可以与大家一起探索Java的神秘。3、2、1,请看!

本篇文章将带大家编写一个简易算术计算器。=

功能:将几个算术功能组织为菜单形式供客户选择,菜单栏如下:

1.建立菜单

首先我们需要显示菜单供用户选择

    //显示菜单
    System.out.println("***请按编号选择使用哪个功能***");
    System.out.println("1.判断某数是否为素数");
    System.out.println("2.获取亲密数");
    System.out.println("3.算术练习器");
    System.out.println("4.求两数最大公约数和最小公倍数");
    System.out.println("0.退出");

菜单就这样完成啦,接下来需要完善每一个功能。为实现这样那样的选择功能,我们可以选择switch结构,并且调用方法执行对应功能。

2.功能一——判断素数

判断一个数是否为素数,可能我们一开始接触的方法都是从2一直遍历到n-1,一个数因子必然成对,利用这个性质可以直接由2遍历至n的开根,从而可以简化程序具体情形可以看下面的代码或文章Java题集1

    //case 1
    public static boolean isPrime(int n)
    {
        if(n==1)
            return false;
        for(int i=2;i<=Math.sqrt(n);i++)
        {
            if(n%i==0)
                return false;
        }
        return true;
    }

3.功能二——获取亲密数

亲密数:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。

可以直接求A的因子之和B,然后判断是否是A的亲密数

 //case 2
    public static void close(int m)
    {
        int a,b=1,temp=1,k=0;
        for(a=2;a<m;a++)
        {
            b=1;
            for(int i=2;i<Math.sqrt(a);i++){
                if(a%i==0)
                b=b+i+a/i;
            }
            
            if(a<b)
            {
                temp=1;
                for(int i=2;i<Math.sqrt(b);i++)
                if(b%i==0)
                {
                    temp=temp+i+b/i;
                }
            }
            if(a==temp)
            {
                System.out.println(a+"和"+b+"是亲密数");
                k++;
            }
        }
        if(k==0)
            System.out.println(m+"内没有亲密数");
        else{
            System.out.println("有"+k+"对亲密数");
        }
    }

4.功能三——算术练习器

随机生成算术题,然后由用户输入自己的答案,并判断答案是否正确。

//case 3
    public static void exercise(int x)
    {
        int m,n,rein,reca=0,cr=0,cw=0,op;//rein:用户输入数字,reca:正确答案,cr:正确题目数量,cw:错题数
        do {
            do {
                //随机生成两个两位数
                m=(int)(Math.random()*100);
                n=(int)(Math.random()*100);
            } while (m<=10||n<=10);
            op=(int)(Math.random()*4);//生成0~3的数字,0:加法;1:减法;2:乘法;3:除法
            switch (op) {
                case 0:
                    System.out.println(m+"+"+n+"=");
                    reca=m+n;
                    break;
                case 1:
                    System.out.println(m+"-"+n+"=");
                    reca=m-n;
                    break;
                case 2:
                    System.out.println(m+"*"+n+"=");
                    reca=m*n;
                    break;
                case 3:
                    System.out.println(m+"/"+n+"=");
                    reca=m/n;
                    break;
                default:
                    break;
            }
            Scanner scn=new Scanner(System.in);
            System.out.println("请输入你的答案");
            rein=scn.nextInt();
            if(rein==reca)
            {
                System.out.println("计算正确");
                cr++;
            }
            else{
                System.out.println("计算错误,答案是:"+reca);
                cw++;
            }
        } while ((cr+cw)<x);
        System.out.println("你做对了"+cr+"道题");
        System.out.println("你做错了"+cw+"道题");
    }

5.功能四——求两数最大公约数和最小公倍数

使用辗转相除法求得最大公约数,再根据最大公约数和最小公倍数之间的关系求得最小公倍数

    //case 4
    public static void gysgbs()
    {
        Scanner scn=new Scanner(System.in);
        int m,n,r=0;

        System.out.println("请输入两个数");
        do {
            m=scn.nextInt();
            n=scn.nextInt();
        } while (m<=0||n<=0);
        int s=m*n;
        r=m%n;
        while(r!=0)
        {
            m=n;
            n=r;
            r=m%n;
        }
        System.out.println("最大公约数是:"+n);
        System.out.println("最大公倍数是:"+(s/n));
    }

关于各个功能的方法就写好了,最后将其用switch结构进行整合,使程序运行起来。

这篇文章到此结束,源码已经放在资源区了,大家可以前往查看。感谢各位的阅读和所提出的宝贵意见,大家也可以试着自己动手编写代码。如果觉得这篇文章写的还可以或者对您有帮助,麻烦点赞收藏加转发!!!

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

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

相关文章

VBA经典应用69例应用6:格式化代码中的双引号(””)和井号(#)

《VBA经典应用69例》&#xff08;版权10178981&#xff09;&#xff0c;是我推出的第九套教程&#xff0c;教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开&#xff0c;这套教程案例众多&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以便…

使用java做一个微信机器人

如何使用Java开发微信机器人 在当今社交网络盛行的时代&#xff0c;微信已成为人们生活中不可或缺的工具。为了更好地服务用户&#xff0c;许多企业和个人开始利用微信机器人来自动化回复消息、发布信息等操作。本文将介绍如何使用Java开发一个简单的微信机器人&#xff0c;并…

html基础语法 看这一篇就够了!

HTML 一 概念 html:html 文件根标签 head:编写页面相关的属性 title:页面标题 body:页面内容展示信息 二 DOM 树&#xff1a; 所有的标签都是 html 的子标签 head 和 body 是兄弟标签&#xff0c;同一级别 head 和 title 为父子标签 1.第一个程序 <html><head>…

音视频入门基础:WAV专题(9)——FFmpeg源码中计算WAV音频文件每个packet的duration和duration_time的实现

一、引言 从文章《音视频入门基础&#xff1a;WAV专题&#xff08;6&#xff09;——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道&#xff0c;通过FFprobe命令可以显示WAV音频文件每个packet&#xff08;也称为数据包或多媒体包&#xff09;的信息&#xff0…

苹果电脑可以玩《原神》吗?原神可以在Mac上玩吗?苹果电脑玩原神怎么样

《原神》是一款由米哈游开发的开放世界冒险游戏&#xff0c;自从2020年正式上线以来&#xff0c;就受到了全球玩家的热烈欢迎。《原神》的画面精美&#xff0c;音乐动听&#xff0c;剧情丰富&#xff0c;角色多样&#xff0c;玩法多变&#xff0c;让人沉浸在一个充满奇幻和魅力…

【Python 学习】Pandas基础与应用(1)

题目 1 Pandas 简介1.1 主要特征1.2 Pandas 安装 2 Pandas中的数据结构2.1 Series 数据结构和操作2.1.1 Series的数据结构2.1.2 Seres的操作 2.2 DataFrame 数据结构和操作2.2.1 DataFrame 数据结构2.2.2 Dataframe 操作2.2.3 DateFrame 的特殊操作 2.3 Series 和 DataFrame 的…

LRU go cache的实现

目录 LRU算法LRU原理LRU实现Redis LRU算法实现1. 内存淘汰策略2. LRU算法的实现3. LRU vs LFURedis中的LRU使用场景 基于LRU的缓存库go-cache安装使用代码解析 hashicorp/golang-lru安装使用代码解析 groupcache安装使用代码解析缓存淘汰算法并发缓存组一致性哈希防止缓存击穿—…

从电商行业的变化引出未来技术趋势

时间&#xff1a;2024年09月08日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频地址&#xff1a;喜马拉雅 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋推荐一下&#xff0c;小蒋希望遇到一个认真…

无人机人工增雨技术详解

无人机&#xff0c;全称为无人驾驶飞行器&#xff08;Unmanned Aerial Vehicle, UAV&#xff09;&#xff0c;是一种不需要人员直接操控&#xff0c;而是利用先进的遥控技术、自主飞行控制系统和传感器技术来实现空中飞行和完成特定任务的飞行器。 一、技术原理 无人机人工增雨…

轻NAS系统CasaOS设备安装Memos笔记结合内网穿透公网访问与同步教程

文章目录 前言1. 使用Docker部署memos2. 注册账号与简单操作演示3. 安装cpolar内网穿透4. 创建公网地址5. 创建固定公网地址 前言 本文主要介绍如何在安装了轻NAS系统CasaOS设备中使用Docker本地部署开源云笔记服务memos&#xff0c;并结合cpolar内网穿透工具配置公网地址&…

C/C++两点坐标求距离以及C++保留两位小数输出,秒了

目录 1. 前言 2. 正文 2.1 问题 2.2 解决办法 2.2.1 思路 2.2.2 代码实现 3. 备注 1. 前言 依旧是带来一个练手的题目&#xff0c;目的就一个&#xff0c;方法千千万&#xff0c;通向终点的方式有很多种&#xff0c;没有谁与谁&#xff0c;我们都是为了成为更好的自己。…

VMware Fusion 虚拟机Mac版 安装CentOS系统教程

Mac分享吧 文章目录 CentOS安装完成&#xff0c;软件打开效果一、Mac中使用虚拟机安装CentOS系统1️⃣&#xff1a;下载镜像2️⃣&#xff1a;创建虚拟机3️⃣&#xff1a;设置虚拟机4️⃣&#xff1a;安装虚拟机5️⃣&#xff1a;设置成从磁盘启动 安装完成&#xff01;&…

哈希表如何避免冲突

系列文章&#xff1a; 1. 先导片--Map&Set之二叉搜索树 2. Map&Set之相关概念 3. 哈希表如何避免冲突 目录 1.概念 2. 冲突-概念 3. 冲突-避免 3.1 冲突-避免-哈希函数设计 3.2 冲突-避免-负载因子调节 4. 冲突-解决 4.1 冲突-解决-闭散列 4.1.1 线性探…

C++_15_类与对象

类与对象 什么是类&#xff1f; 描述有共同特征的事务的概念 作用&#xff1a;代码中 创建对象 什么是对象&#xff1f; 生活中&#xff1a; 就是指真实存在的事物。 代码中&#xff1a; 模拟真实的事物&#xff0c;使用类创建得到。 类与对象的关系 生活中&#xff1a; ​ 先…

VMware vSphere5.0关闭虚拟机电源时,报错从ESXI主机接收到错误

ESXI和VCENTER都是5.0版本的&#xff0c;有台虚拟机关机报错提示从ESXI主机接受到意外错误 具体报错信息如下&#xff1a; 从VCENTER平台对该虚拟机做任何操作都无法生效&#xff0c;后来查看了虚拟机的网络和端口&#xff0c;发现SSH能正常联通&#xff0c;进入虚拟机后使用命…

【算法专场】模拟(下)

目录 前言 38. 外观数列 算法分析 算法思路 算法代码 1419. 数青蛙 算法分析 算法思路 算法代码 2671. 频率跟踪器 算法分析 算法思路 算法代码 前言 在前面我们已经讲解了什么是模拟算法&#xff0c;这篇主要是讲解在leetcode上遇到的一些模拟题目~ 38. 外观数列…

Pencils Protocol生态新进展,即将上线 Vault 产品

“极高的盈利预期、通证的持续回购与销毁&#xff0c;Vault产品的推出正在成为Pencils Protocol生态发展的重磅利好。” Pencils Protocol是目前Scroll生态TVL最高的DeFi平台 &#xff0c;即便是行情整体较为平淡&#xff0c;其仍旧能够保持在3亿美元左右的锁仓价值&#xff0c…

史上最全的Linux常用命令汇总(超全面!超详细!)收藏这一篇就够了!

command &#xff1a;命令名&#xff0c;相应功能的英文单词或单词的缩写[-options] &#xff1a;选项&#xff0c;可用来对命令进行控制&#xff0c;也可以省略parameter &#xff1a;传给命令的参数&#xff0c;可以是 零个、一个 或者 多个 查阅命令帮助信息 -help 说明&…

LC1860C 后来怎么样了

这块芯片前身是大唐旗下联芯的LC1860C&#xff1b;这块传奇芯片在4G时代大放异彩&#xff0c;但是某些原因之后&#xff0c;技术打包转让给三家&#xff0c;分别是&#xff1a;小米&#xff0c;大疆&#xff0c;哲酷&#xff08;VIVO&#xff09;&#xff1b; 1、哲酷 哲酷目…

Infiniband网络架构的技术与性能分析

Infiniband格局寡头&#xff0c;性能占优 这篇文章探讨了网络交换机的性能优势&#xff0c;以及如何通过扩大模型参数量来提高语言模型的生成和预测能力。然而&#xff0c;计算约束对这种正向关系产生了重要影响&#xff0c;导致在相同的计算约束下&#xff0c;总存在最佳的模型…