外包网站建设价格,合肥网站建设培训机构,中文网站建设合同,北京seo公司wyhseo题目 写一个方法#xff0c;将一个整数逆序打印输出到控制台。注意#xff1a;当输入的数字含有结尾的0时#xff0c;输出不应带有前导的0。比如#xff1a;123的逆序输出为321#xff0c;8600的逆序输出为68#xff0c;-609的逆序输出为-906。 解析 这道题本身并没有什么…题目 写一个方法将一个整数逆序打印输出到控制台。注意当输入的数字含有结尾的0时输出不应带有前导的0。比如123的逆序输出为3218600的逆序输出为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。