当前位置: 首页 > 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…...

百度网盘macOS下载限速破解:3步实现高速下载的完整指南

百度网盘macOS下载限速破解&#xff1a;3步实现高速下载的完整指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘在macOS上的龟速下载…...

Windows安卓应用安装神器:APK Installer完整使用指南

Windows安卓应用安装神器&#xff1a;APK Installer完整使用指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为Windows电脑无法运行安卓应用而烦恼吗&#xff…...

大厂光环褪去后,技术人该如何评估一份工作的价值?

当“进入大厂”不再是职业发展的唯一解&#xff0c;当“稳定”成为一种奢求&#xff0c;软件测试从业者需要一套更内核的价值评估体系。这套体系不应依赖于公司的名头或短期的薪资涨幅&#xff0c;而应聚焦于那些能够被你带走、并持续产生复利的核心资产。我们可以从以下四个维…...

Hyper-V下安装macOS(引导文件macOS.Monterey.14.x.UEFI.vhdx)版本:UEFI-OC095-

用于windows自带hyper-v虚拟机安装macos14时使用的虚拟磁盘&#xff0c;具体如何安装请参考文章...

告别盲选!深入解读5G NR中UCI偏置值(beta_offset)的配置策略与索引选择

5G NR中UCI偏置值配置的工程实践指南 在5G新空口(NR)系统中&#xff0c;上行控制信息(UCI)通过物理上行共享信道(PUSCH)传输时&#xff0c;其资源分配直接影响到系统性能和用户体验。作为网络优化工程师&#xff0c;我们经常需要面对各种复杂的配置场景&#xff0c;而UCI偏置值…...

单片机软件架构师使用Taotoken多模型对比分析内存分配策略

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 单片机软件架构师使用Taotoken多模型对比分析内存分配策略 在嵌入式软件开发中&#xff0c;内存分配策略的选择直接影响着系统的实…...

零成本AI评审知识库:基于GitHub Actions与Gemini的自动化学术发布平台

1. 项目概述&#xff1a;一个零成本、AI驱动的开放知识库如果你是一名研究者、开发者&#xff0c;或者正在构建一个需要实时验证信息的AI智能体&#xff0c;那么你一定对传统学术出版的漫长周期和封闭性感到头疼。一篇论文从投稿到发表&#xff0c;动辄数月&#xff0c;评审过程…...

xhs签名验证机制详解:如何绕过小红书反爬虫系统的终极指南

xhs签名验证机制详解&#xff1a;如何绕过小红书反爬虫系统的终极指南 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 在小红书数据爬取领域&#xff0c;xhs签名验证机制是开…...

自动化营销系统:高效破解市场-SDR销售线索流转堵点

在B2B营销中&#xff0c;线索从“获取”到“转化”的过程&#xff0c;往往伴随着大量的手动操作、信息断层和跟进滞后。尤其是市场团队与SDR&#xff08;销售开发代表&#xff09;之间的协作&#xff0c;常常成为线索流转的“瓶颈”。如何高效、规范地将市场获取的Leads转化为可…...

量子计算误差缓解技术:Qiskit实现与工程实践

1. 量子计算误差缓解的必要性与挑战在当前的NISQ&#xff08;Noisy Intermediate-Scale Quantum&#xff09;时代&#xff0c;量子计算机的硬件限制使得误差累积成为阻碍实用化的主要瓶颈。以氢分子基态能量计算为例&#xff0c;未经误差缓解的VQE计算结果可能偏离理论值达20%以…...