当前位置: 首页 > news >正文

C++面试宝典第2题:逆序输出整数

题目

        写一个方法,将一个整数逆序打印输出到控制台。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如:123的逆序输出为321,8600的逆序输出为68,-609的逆序输出为-906。

解析

        这道题本身并没有什么难度,主要考察应聘者全面思考问题的能力。假如我们是一个测试工程师,应当如何编写这道题的测试用例呢?下面给出了一些测试用例,可供应聘者参考。

        1、整数为0时,输出为:“0”。

        2、整数为6时,输出为:“6”。

        3、整数为365时,输出为:“563”。

        4、整数为1200时,输出为:“21”。

        5、整数为1002时,输出为:“2001”。

        6、整数为100200时,输出为:“2001”。

        7、整数为-6时,输出为:“-6”。

        8、整数为-365时,输出为:“-563”。

        9、整数为-1200时,输出为:“-21”。

        10、整数为-1002时,输出为:“-2001”。

        11、整数为-100200时,输出为:“-2001”。

        本题的解题思路为:首先,判断整数为正数还是负数,如果为负数,则直接输出负号,并取其绝对值。然后,依次取出个位、十位、百位上的数字,判断是否为0,如果为0,则跳过,直到找到不是0的数字,再输出该数字。后续再遇到数字为0时,需要输出0,不能跳过。

        下面,我们给出了这道题的示例代码。

#include <iostream>
using namespace std;void OutputReverse(int nNumber)
{if (nNumber == 0){cout << nNumber << endl;return;}if (nNumber < 0){nNumber = -nNumber;cout << "-";}bool bPrefixZero = true;while (nNumber != 0){int nTemp = nNumber % 10;if (nTemp != 0 || !bPrefixZero){if (bPrefixZero){bPrefixZero = false;}cout << nTemp;}nNumber = nNumber / 10;}cout << endl;
}int main()
{OutputReverse(0);OutputReverse(6);OutputReverse(365);OutputReverse(1200);OutputReverse(1002);OutputReverse(100200);OutputReverse(-6);OutputReverse(-365);OutputReverse(-1200);OutputReverse(-1002);OutputReverse(-100200);getchar();return 0;
}

        在上面的示例代码中,我们首先对0这种特殊情况进行了处理,直接原样输出0。对于负数,我们会输出负号,然后取其相反数。然后,我们对nNumber进行取余操作,得到每一位上的数字nTemp,并对nNumber除以10,一直到nNumber为0时为止。在遍历每一位上的数字前,我们记录了一个变量bPrefixZero,默认为true。当nTemp为0且bPrefixZero为true时,不输出0,其他情况下,则都需要输出nTemp。当nTemp不为0时,会将bPrefixZero设置为false。

总结

        通过这道题,我们学会了如何更全面、更仔细地思考问题。严谨是一个软件开发工程师的必备素质,我们在平时的编程过程中,就应当养成严谨的好习惯。

        另外,我们还为你留了一些课后的拓展作业,快来试一试吧!

        1、有两个字符串s和t,请编写一个方法,查找字符串t在字符串s中出现的最左边的位置;如果在s中没有与t匹配的子串,则返回-1。

相关文章:

C++面试宝典第2题:逆序输出整数

题目 写一个方法&#xff0c;将一个整数逆序打印输出到控制台。注意&#xff1a;当输入的数字含有结尾的0时&#xff0c;输出不应带有前导的0。比如&#xff1a;123的逆序输出为321&#xff0c;8600的逆序输出为68&#xff0c;-609的逆序输出为-906。 解析 这道题本身并没有什么…...

Twincat功能块使用经验总结

控制全局变量&#xff1a; //轴控制指令 bi_Power: BOOL; //使能 bi_Reset: BOOL; //复位 bi_Stop: BOOL; //停止 bi_JogForward: BOOL; //正向点动 bi_JogBackwards: BOOL; //反向点动 bi_MoveAdditive: BOOL; //增量位…...

香港服务器时间不准,差8小时

解决方案1 1、timedatectl查看系统时间 2、查看系统时区 ls /usr/share/zoneinfo 3、删除当前系统所处时区 rm /etc/localtime 4、创建软链接&#xff0c;以替换当前的时区信息 ln -s /usr/share/zoneinfo/Universal /etc/localtime 解决方案2 手动设置硬件时钟 1、设置系…...

C++ 抽象类和接口 详解

目录 0 引言1 抽象类2 接口2.1 Java与C接口的区别 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;C专栏&#x1f4a5; 标题&#xff1a;C 抽象类和接口 详解❣️ 寄语&#xff1a;书到用时方恨少&#xff0c;事非经过不知难&#xff01;&#x1f…...

【Linux】awk 使用

awk 输出 // 打印所有列 $ awk {print $0} file // 打印第一列 $ awk {print $1} file // 打印第一和第三列 $ awk {print $1, $3} file // 打印第三列和第一列&#xff0c;注意先后顺序 $ cat file | awk {print $3, $1} …...

LeetCode力扣每日一题(Java):9、回文数

一、题目 二、解题思路 1、我的思路 当x<0时&#xff0c;x一定不是回文数&#xff0c;直接返回false 当x>0且x<10时&#xff0c;x一定是回文数&#xff0c;直接返回true x>10时&#xff0c;先将x转为字符串。将数字转成字符串方法挺多的&#xff0c;以下是&…...

WPF前端实现人脸扫描动画效果

前言 本章实现的效果主要通过OpacityMask与LinearGradientBrush(径向渐变) 的组合应用来实现。最终实现效果如下: LinearGradientBrush线性渐变画刷 LinearGradientBrush其实很简单,我们只需要关注5个属性,使用这5个属性你就可以完成这个画刷几乎所有的变化。 属性介…...

更改AndroidStudio模拟器位置

C盘何等的珍贵&#xff0c;可是好多工具&#xff0c;软件非得默认安装在C盘。。导致C盘越来越紧张。。 在日常使用过程中&#xff0c;安装任何软件都会将其安装到非系统盘下&#xff0c;Android模拟器也不能例外。保护好C盘也是日常一个良好的习惯。 Android AVD默认路径&…...

Dash 协议介绍

<?xml version"1.0" encoding"utf-8"?> <MPD xmlns"urn:mpeg:dash:schema:mpd:2011" minBufferTime"PT1.5S" type"static" mediaPresentationDuration"PT0H1M0.3S" maxSegmentDuration"PT0H0M2.0…...

RabbitMQ的消息发送和接收机制

所有 MQ 产品从模型抽象上来说都是一样的过程&#xff1a; 消费者&#xff08;consumer&#xff09;订阅某个队列。生产者&#xff08;producer&#xff09;创建消息&#xff0c;然后发布到队列&#xff08;queue&#xff09;中&#xff0c;最后将消息发送到监听的消费者。 上…...

记录111

在两台 RHEL 8 服务器上搭建 PostgreSQL 和 pgpool-II 环境涉及到安装 PostgreSQL、配置流复制&#xff08;Streaming Replication&#xff09;以及安装和配置 pgpool-II。以下是详细的步骤&#xff1a; ### 准备工作 1. **获取服务器**&#xff1a;确保你有两台运行 RHEL 8 的…...

振动和震动的区别?

问题描述&#xff1a;振动和震动的区别&#xff1f; 问题解决&#xff1a; 震动&#xff08;Oscillation&#xff09;&#xff1a; 特点&#xff1a; 随机的、突发的、不经常的、无规律的运动。例子&#xff1a; 地壳震动、消息震动全国&#xff0c;强调的是运动的力度或幅度&…...

3DMM模型

目录 BFMBFM_200901_MorphableModel.matexp_pca.bintopology_info.npyexp_info.npy BFM BFM_2009 01_MorphableModel.mat from scipy.io import loadmat original_BFM loadmat("01_MorphableModel.mat") # dict_keys: [__header__, __version__, __globals__, # …...

Python 3 使用 write()、writelines() 函数写入文件

1 使用 write() 函数&#xff0c;将字符串&#xff08;或字节串&#xff0c;仅适用写入二进制文件中&#xff09;写入文件中。 with open(example.txt,w,encodingutf-8) as f:f.write(春夜喜雨\n)f.write(杜甫 [唐代]\n)f.write(好雨知时节&#xff0c;当春乃发生。\n)f.write(…...

鸿蒙(HarmonyOS)应用开发——管理组件状态

状态管理 在应用中&#xff0c;界面通常都是动态的。 #mermaid-svg-DrPNsglFkyLqn7Lw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-DrPNsglFkyLqn7Lw .error-icon{fill:#552222;}#mermaid-svg-DrPNsglFkyLqn7Lw …...

倚天屠龙:Github Copilot vs Cursor

武林至尊&#xff0c;宝刀屠龙。号令天下&#xff0c;莫敢不从。倚天不出&#xff0c;谁与争锋&#xff01; 作为开发人员吃饭的家伙&#xff0c;一款好的开发工具对开发人员的帮助是无法估量的。还记得在学校读书的时候&#xff0c;当时流行CS架构的RAD&#xff0c;Delphi和V…...

【web安全】RCE漏洞原理

前言 菜某的笔记总结&#xff0c;如有错误请指正。 RCE漏洞介绍 简而言之&#xff0c;就是代码中使用了可以把字符串当做代码执行的函数&#xff0c;但是又没有对用户的输入内容做到充分的过滤&#xff0c;导致可以被远程执行一些命令。 RCE漏洞的分类 RCE漏洞分为代码执行…...

EI论文复现:基于组合双向拍卖的共享储能机制研究程序代码!

本程序参考EI期刊论文《基于组合双向拍卖的共享储能机制研究》&#xff0c;文中的组合双向拍卖交易机制较为新颖&#xff0c;本质上属于博弈范畴&#xff0c;共享储能是目前的研究热点&#xff0c;牵涉到共享储能参与者的投标策略和收益函数&#xff0c;文中所提模型可为电力市…...

ThinkPHP 5 中,你可以使用定时任务调度器(TaskScheduler)来执行其他定时任务

在 ThinkPHP 5 中&#xff0c;你可以使用定时任务调度器&#xff08;TaskScheduler&#xff09;来执行其他定时任务。以下是一个示例代码&#xff0c;演示如何在一个定时任务中执行另一个定时任务&#xff1a; 首先&#xff0c;你需要创建一个继承自 think\console\Command 的…...

mysql:免费的GUI客户端工具推荐并介绍常用的操作

给大家推荐几个常用的 mysql 数据库客户端 sequel-pro sequel-ace 官网下载地址 免费 sequel-ace 可以理解为 Sequel Pro 的升级版&#xff0c;由于Sequel Pro官方不维护了&#xff0c;特别是对 MySQL 8.0 支持不好&#xff0c;所以现在由社区维护了新分支 sequel-ace&#x…...

FireRed-OCR保姆级教程:一键部署,精准提取表格公式转Markdown

FireRed-OCR保姆级教程&#xff1a;一键部署&#xff0c;精准提取表格公式转Markdown 1. 引言&#xff1a;为什么选择FireRed-OCR&#xff1f; 在日常工作和学习中&#xff0c;我们经常遇到需要从PDF、图片等文档中提取表格、公式等内容的情况。传统OCR工具往往难以准确识别复…...

魔兽世界API开发助手:从新手到专家的全流程解决方案

魔兽世界API开发助手&#xff1a;从新手到专家的全流程解决方案 【免费下载链接】wow_api Documents of wow API -- 魔兽世界API资料以及宏工具 项目地址: https://gitcode.com/gh_mirrors/wo/wow_api 价值定位&#xff1a;如何避免90%的插件开发陷阱&#xff1f; 在魔…...

从登录到鉴权:一个前后端分离项目的完整JWT非对称加密配置指南(Vue3 + Spring Boot)

从登录到鉴权&#xff1a;一个前后端分离项目的完整JWT非对称加密配置指南&#xff08;Vue3 Spring Boot&#xff09; 在现代Web应用开发中&#xff0c;前后端分离架构已成为主流选择。这种架构下&#xff0c;如何安全高效地处理用户认证与授权成为一个关键问题。本文将带你从…...

指尖藏趣,抽享惊喜——扭蛋机抽赏盲盒小程序前端功能详解

抽赏盲盒所带来的未知惊喜与收集乐趣&#xff0c;深受不同年龄段用户的喜爱&#xff0c;扭蛋机抽赏盲盒小程序则打破线下场景限制&#xff0c;让这份乐趣随时可及。该小程序前端功能以“简约操作、趣味体验”为核心&#xff0c;聚焦用户可直接操作的功能板块&#xff0c;简化流…...

COMSOL 探索岩石力学多场景:损伤、压裂、试验与模拟

COMSOL岩石损伤、水力压裂、三轴试验 岩石在膨胀剂的膨胀作用下的损伤&#xff1b; 相场法与水力压裂(6个模型)&#xff1b; 不固结不排水三轴试验&#xff1b; 二维钻孔封孔效果模拟。在岩石力学领域&#xff0c;COMSOL 如同一个强大的实验室&#xff0c;让我们能够对复杂的岩…...

Windows虚拟控制器驱动完全指南:如何用ViGEmBus实现游戏设备模拟

Windows虚拟控制器驱动完全指南&#xff1a;如何用ViGEmBus实现游戏设备模拟 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 你是否曾因游戏只支持特定手柄而…...

告别频繁输密码!域环境下Windows软件静默安装的两种野路子(慎用)

告别频繁输密码&#xff01;域环境下Windows软件静默安装的两种野路子&#xff08;慎用&#xff09; 在中小企业IT运维的日常中&#xff0c;软件批量部署和远程协助安装堪称两大高频痛点。想象这样的场景&#xff1a;财务部急需更新报税软件&#xff0c;二十台电脑需要同时处理…...

51单片机项目避坑:用ADC0804读PT100信号,你的滤波和标度变换做对了吗?(附源码分析)

51单片机PT100温度检测实战&#xff1a;从ADC采样到标度变换的完整设计解析 在工业温度测量领域&#xff0c;PT100凭借其优异的线性度和稳定性成为首选传感器之一。不同于常见的DS18B20数字温度传感器&#xff0c;PT100需要配合精密信号调理电路和AD转换器才能实现准确测量。本…...

MindSpore mint 模块学习

1. 模块概述mindspore.mint是 MindSpore 框架提供的一个功能接口子模块&#xff0c;旨在提供大量与业界主流深度学习框架&#xff08;如 PyTorch&#xff09;保持一致的 functional、nn、优化器等 API。使熟悉主流框架的用户能够快速上手。性能特点&#xff1a;在图编译模式为 …...

Nimbus:一个统一的具身合成数据生成框架

Zeyu He, Yuchang Zhang, Yuanzhen Zhou, Miao Tao, Hengjie Li,∗, Hui Wang, Yang Tian, Jia Zeng, Tai Wang, Wenzhe Cai, Yilun Chen, Ning Gao, Jiangmiao Pang摘要扩大数据规模和多样性对于泛化具身智能至关重要。虽然合成数据生成为昂贵的物理数据采集提供了可扩展的替代…...