大连做网站软件,商业网点建设中心网站,php网站开发实用技术,门户网站制作题目 写一个方法#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不能跳过。 下面我们给出了这道题的示例代码。
fn output_reverse(num: i32) {if num 0 {println!(0);return;}let is_negative num 0;if is_negative {print!(-);}let num if is_negative { -num } else { num };let mut prefix_zero true;let mut temp_num num;while temp_num 0 {let digit temp_num % 10;if digit ! 0 || !prefix_zero {if prefix_zero {prefix_zero false;}print!({}, digit);}temp_num / 10;}println!();
}fn main() {output_reverse(0);output_reverse(6);output_reverse(365);output_reverse(1200);output_reverse(1002);output_reverse(100200);output_reverse(-6);output_reverse(-365);output_reverse(-1200);output_reverse(-1002);output_reverse(-100200);
} 在上面的示例代码中我们首先对0这种特殊情况进行了处理直接原样输出0。对于负数我们会输出负号然后取其相反数。然后我们对temp_num进行取余操作得到每一位上的数字digit并对temp_num除以10一直到temp_num为0时为止。在遍历每一位上的数字前我们记录了一个变量prefix_zero默认为true。当digit为0且prefix_zero为true时不输出0其他情况下则都需要输出digit。当digit不为0时会将prefix_zero设置为false。 总结 通过这道题我们学会了如何更全面、更仔细地思考问题。严谨是一个软件开发工程师的必备素质我们在平时的编程过程中就应当养成严谨的好习惯。 另外我们还为你留了一些课后的拓展作业快来试一试吧 1、有两个字符串s和t请编写一个方法查找字符串t在字符串s中出现的最左边的位置如果在s中没有与t匹配的子串则返回-1。