当前位置:首页 » 《资源分享》 » 正文

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

7 人参与  2024年05月04日 14:17  分类 : 《资源分享》  评论

点击全文阅读


题目

        写一个方法,将一个整数逆序打印输出到控制台。注意:当输入的数字含有结尾的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,不能跳过。

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

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。


点击全文阅读


本文链接:http://www.zhangshiyu.com/post/103558.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 风柏煜叶桐附加完整在线阅读(谋妻入瓮)最近更新列表
  • (谋妻入瓮)谋妻入瓮(风柏煜叶桐)无套路无弹窗全部章节列表
  • 盲眼大师他总勾搭我最新章节(萧廿颜宁北)全文免费阅读无弹窗大结局_萧廿颜宁北免费阅读
  • ⽗亲被欺辱后,我为他洗冤翻盘全文阅读_奶奶孙子麦芽糖独家首发_小说后续在线阅读_无删减免费完结_
  • 俞晓小说完结篇(豪门骗嫁:腹黑总裁步步谋婚)章节前文+全篇阅读(俞晓)最近更新
  • 手撕冒充我身份抢拉布布的第三者故事会_老公赵桐州陆雅宁免费阅读_小说后续在线阅读_无删减免费完结_
  • 以前不喜欢的人,以后也不会喜欢全文免费阅读无弹窗大结局_林雨浔楚淮晏最新章节列表_笔趣阁(以前不喜欢的人,以后也不会喜欢:完结+结局+番外)
  • 救命血被抽干,中了绝情蛊的老公弟弟双双傻眼了免费赏析_弟弟月儿谢总全文+后续_小说后续在线阅读_无删减免费完结_
  • 愿意季清涟小说番外+结局(心上音)小说在线阅读
  • 莫斯科没有眼泪好评_林陌瑾修许青青后续+完结_小说后续在线阅读_无删减免费完结_
  • 宠妻上瘾:霸道老公坏死了(秦慕辰苏莫浅)整本+后续+(宠妻上瘾:霸道老公坏死了)结局在线阅读
  • 林雨浔楚淮晏:+后续+番外以前不喜欢的人,以后也不会喜欢无删减小说在线无广告高口碑小说

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1