Java版大厂算法题1——数字颠倒

news2025/2/24 10:08:07

问题描述

      输入一个整数,将这个整数以字符串的形式逆序输出,程序不考虑负数的情况,若数字含有0,则逆序形式也含有0。如果输入为100,则输出为001。
数据范围:0<=n<=(2^30)-1  
* 输入描述:输入一个int整数  
* 输出描述:将这个整数以字符串的形式逆序输出

代码演示

import java.io.*;

/**
 * ClassName:HJ11
 * Description:数字颠倒
 * 输入一个整数,将这个整数以字符串的形式逆序输出,程序不考虑负数的情况,若数字含有0,则逆序形式也含有0
 * 如果输入为100,则输出为001
 *
 * 数据范围:0<=n<=(2^30)-1
 * 输入描述:输入一个int整数
 * 输出描述:将这个整数以字符串的形式逆序输出
 *
 * 初始想法:先把整数转换为字符串,然后对这个字符串进行颠倒
 *
 * @Create:2024/1/25 13:59
 * @Version 1.0
 */

public class HJ11 {
    public static void main(String[] args) throws IOException {
        //采用BufferedReader这个类,用于从字符串输入流中读取文本
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //初始化一个空字符串,用以存储输入内容
        String str = "";
        //尝试从标准输入读取一行文本,如果发生异常,我们就捕获
        try{
            str = br.readLine();
        } catch(Exception e){

        }
        //用一个变量存储当前数字
        int a = 0;
        //把字符串解析成整数
        int num = Integer.parseInt(str);
        //用do-while循环来处理倒序
        do{
            //提取num的最后一位数字
            a = num % 10;
            //不断从num中移除最后一位数字
            num = num / 10;
            System.out.print(String.valueOf(a));
        }
        while(num > 0);
    }
}


解题思路

       我喜欢先从数据类型思考,然后再从逻辑运算来设计代码,因为对于Java这种强类型的语言来说,我们还是最好能有一个思路清晰的数据类型处理过程,加之这道题也涉及到了int和string两种类型。

代码细节

抛异常

       在Java中抛出异常一种处理程序运行时间可能遇到的错误或异常情况的机制,而且,尤其在涉及输入输出的操作时,可能会遇到不可预见的错误,这样使用异常可以把正常的业务逻辑和错误处理分开,代码更加清晰和易于维护。IOException即主要处理I/O异常的方式。

关于BufferedReader

       BufferedReader是一个类,用于从字符输入流高校地读取文本,我们直接采用隐式的方式,传入到BufferedReader构造函数的参数,参数就是InputStreamReader的一个实例对象。

类型转换方法

       我们用parseInt()方法,用以把字符串类型的数据转换为int整型,当我们处理完运算逻辑后,再把int类型的a,用valueOf()方法,把a转换为字符串类型。

总结

       这道题教会我们如何在 Java 中处理字符串和基本的输入输出操作。首先,它展示了如何使用 `BufferedReader` 和 `InputStreamReader` 从标准输入读取数据,这是 Java 中常用的一种读取用户输入的方式。其次,通过将整数倒序输出,我们学习了基本的数字操作,如模运算(`%`)和整数除法(`/`),这对于理解数字在编程中的处理非常重要。此外,这个问题也涉及到循环控制结构(`do-while` 循环),它是编程中控制流的基本概念。最后,通过必须处理可能的 `IOException`,我们接触到了异常处理的基础,这是编写健壮、可靠程序的关键部分。总的来说,这个问题提供了一个很好的练习机会,涵盖了多个基础但重要的编程概念。

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

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

相关文章

2023启示录|虚拟人这一年

图片&#xff5c;《银翼杀手 2049》剧照 作者丨程心 编辑丨罗辑 2023 年&#xff0c;大模型 “救活” 了很多行业&#xff0c;其中最为反转的&#xff0c;就是把虚拟数字人&#xff08;以下简称虚拟人&#xff09;从活死人墓里拉了出来。 还没开年&#xff0c;在 2022 年火…

保姆级教学:Java项目从0到1部署到云服务器

目录 1、明确内容 2、apt 2.1、apt 语法 2.2、常用命令 2.3、更新apt 3、安装JDK17 4、安装MySQL 4.1、安装 4.2、检查版本及安装位置 4.3、初始化MySQL配置⭐ 4.4、检查状态 4.5、配置远程访问⭐ 4.6、登录MySQL 4.7、测试数据库 4.8、设置权限与密码⭐ 5、安…

基于Python flask MySQL 猫眼电影可视化系统设计与实现

1 绪论 1.1 设计背景及目的 猫眼电影作为国内知名的电影信息网站&#xff0c;拥有海量的电影信息、票房数据和用户评价数据。这些数据对于电影市场的研究和分析具有重要意义。然而&#xff0c;由于数据的复杂性和数据来源的多样性&#xff0c;如何有效地采集、存储和展示这些数…

0127-2-Vue深入学习5—Vue-Router路由模式

1、Vue-Router三种路由模式&#xff1a; hash&#xff1a;#️⃣使用URL hash 值来做路由&#xff0c;支持所有路由器&#xff1b;history:&#x1f4d6;依赖HTML5 History API和服务器配置&#xff1b;abstract:⛓支持所有JS运行环境&#xff0c;Node.js服务端&#xff1b; 1.1…

基于springboot+vue+mysql+mybatis的博客系统源码+数据库

pb-cms 介绍 博客系统&#xff0c;架构&#xff1a;springbootvuemysqlmybatis 软件架构 软件架构说明 系统截图 技术选型 技术版本说明Spring Boot2.1.6MVC核心框架Spring Security oauth22.1.5认证和授权框架MyBatis3.5.0ORM框架MyBatisPlus3.1.0基于mybatis&#xff0…

HCIA-HarmonyOS设备开发认证-3.内核基础

目录 前言目标一、进程与线程待续。。。 前言 对于任何一个操作系统而言&#xff0c;内核的运行机制与原理是最为关键的部分。本章内容从多角度了解HarmonyOS的内核运行机制&#xff0c;涵盖进程与线程的概念&#xff0c;内存管理机制&#xff0c;网络特性&#xff0c;文件系统…

高级CPU(提高CPU运行速度)

晶体管 早期是加快晶体管切换速度,来提升CPU速度 增加电路 给CPU专门的除法电路其他电路来做复杂操作 缓存&#xff08;cache&#xff09; 给CPU加缓存&#xff08;cache&#xff09;,提高数据存取速度,更快送给CPU&#xff0c;因为处理器里空间不大所以缓存一般只有KB或M…

BGP:03 BGP路由

这是实验拓扑&#xff0c;IBGP 利用环回口建立邻居&#xff0c;IGP 协议为 OSPF&#xff0c; EBGP 通过物理接口建立邻居 基本配置&#xff1a; R1: sys sysname R1 int loop 0 ip add 1.1.1.1 24 int g0/0/0 ip add 192.168.12.1 24 qR2: sys sysname R2 int loop 0 ip ad…

基于SSM的网络办公系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的网络办公系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Spri…

c语言基础6

1.逗号表达式 逗号表达式&#xff0c;就是用逗号隔开的多个表达式。 逗号表达式&#xff0c;从左向右依次执行。整个表达式的结果是最后⼀个表达式的结果。 我们来看下面的一个代码&#xff1a; int main() {int a 1;int b 2;int ret (a > b, a b 2, b, b a 1);p…

shell脚本基础之函数与数组详解

目录 一、shell函数 1、shell函数的概念 2、shell函数的用法 2.1 定义函数 2.2 调用函数 2.3 函数作用范围 2.3.1 调用函数的范围 2.3.2 全局作用域和局部作用域 3、 函数返回值 3.1 系统默认的返回值 3.2 return语句 4、函数传参 5、查看函数列表 6、删除函数 …

RC4Drop加密:提升数据保护的新选择

摘要&#xff1a;RC4Drop是一种基于RC4算法的加密技术&#xff0c;通过将明文数据分成多个部分并进行加密&#xff0c;实现了对数据的高效保护。本文将对RC4Drop加密技术的优缺点进行详细分析&#xff0c;并给出一个Java完整demo示例。 RC4Drop加密解密 | 一个覆盖广泛主题工具…

kafka-顺序消息实现

kafka-顺序消息实现 场景 在购物付款的时候&#xff0c;订单会有不同的订单状态&#xff0c;对应不同的状态事件&#xff0c;比如&#xff1a;待支付&#xff0c;支付成功&#xff0c;支付失败等等&#xff0c;我们会将这些消息推送给消息队列 &#xff0c;后续的服务会根据订…

Redis数据类型-string

Redis-string类型 Redis中的数据类型全局命令get&setredis中变量设置的过期时间是如何检测的 keysexistsdelexpirettlpexpirepttltype string数据类型的底层的数据结构操作string类型的常用命令get&setmset&mgetsetnxsetexpsetexincr&decrincrby&decrbyinc…

前端实现弹小球功能

这篇文章将会做弹小球游戏&#xff0c;弹小球游戏大家小时候都玩过&#xff0c;玩家需要在小球到达游戏区域底部时候控制砖块去承接小球&#xff0c;并不断的将小球弹出去。 首先看一下实现的效果。 效果演示 玩家需要通过控制鼠标来实现砖块的移动&#xff0c;保证在小球下落…

借款还款记录账本,助你轻松地应对借还款带来的种种问题

借还款明细管理看似琐碎&#xff0c;实则关乎我们的切身利益。现在有【晨曦记账本】为你的财务健康保驾护航&#xff0c;让你可以更加轻松地应对借款和还款带来的种种问题&#xff0c;让生活更加简单、有序。 所需工具&#xff1a; 一个【晨曦记账本】软件 操作步骤&#xf…

使用大模型检索增强 Rerank 模型,检索效果提升太明显了!

Rerank 在 RAG&#xff08;Retrieval-Augmented Generation&#xff09;过程中扮演了一个非常重要的角色&#xff0c;普通的 RAG 可能会检索到大量的文档&#xff0c;但这些文档可能并不是所有的都跟问题相关&#xff0c;而 Rerank 可以对文档进行重新排序和筛选&#xff0c;让…

【C++】——类和对象(中)

一、前言 好久没有更新内容了&#xff0c;今天为大家带来类和对形中期的内容 &#xff01; 二、正文 1.this指针 1.1this指针的引入 class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout << _year …

2. HarmonyOS 应用开发 DevEco Studio 准备-2

2. HarmonyOS 应用开发 DevEco Studio 准备-2 首选项设置 中文设置 主题 字体 插件安装和使用 保存时操作 编辑器 工程树管理 代码树管理 标记 字符串可视化编辑 参考文档 常用快捷键 编辑 查找或替换 编译与运行 调试 其他 预览 页面预览 自定义组件预览 预览…

2023年中国工控自动化市场现状及竞争分析,美日占主角,国产品牌初崭头角

工控自动化是一种运用控制理论、仪器仪表理论、计算机和信息技术&#xff0c;对工业生产过程实现检测、控制、优化、调度、管理和决策&#xff0c;达到增加产量、提高质量、降低消耗、确保安全等目的综合性技术。产品应用领域广泛&#xff0c;可分为OEM型行业和项目型行业。 近…