• 1001.A+B Format (20)


    1001.A+B Format (20)

    GitHub链接

    解题思路

    1. 此题大致上是简单的A+B问题,只是在输出时额外要求以标准数(即每三位数记一个逗号的形式)输出。
    2. 标准数输出,一开始想的是把数字转化为字符串(网上查阅了itoa函数),后来多次尝试发现比较难实现。然后发现题目给的范围是1000000以内,这样一来逗号就只有1个、2个、3个三种情况,将数字大小进行判断,分别输出就可以,不用再转化为字符串。
    3. 总体思路:首先将符号去掉,便于计算。然后分为三种情况,再通过计算得到每个逗号之间的三位数,分别输出即可。

    编码过程中调试

    1. 一开始的难题是如何取出逗号之间的数字,经过多次尝试,找到了方法:
      • 1000以内的数字:直接输出
      • 1000-1000000之间的数字:先将数字除以1000后输出前三位数字,输出一个逗号后,用1000取余输出后三位
      • 1000000以上的数字:现将数字除以1000000后输出前三位数字,输出一个逗号,再将原数字除以1000后再用1000取余,输出中间三位,输出一个逗号,最后将原数字用1000取余即可输出最后三位
    2. 后来调试发现遇到不足三位数的地方,不会自动补上0,苦思无果,网上查阅资料后发现只要在输出时写为“%03d”,就会输出三位数字左端补0的格式(新技能get),之后在该补0的地方补上0就完成了。

    在PAT上的提交记录列表截图

    PAT提交记录

    (提交前测试的数据比较多,一次就过真是感人。)
  • 相关阅读:
    使用Supervisor守护Python进程
    Python 程序员经常犯的 10 个错误
    DNS的view加速
    转-Gitorious搭建步骤
    linux下curl的地址使用双引号引用的原因
    java poi ppt操作示例
    CentOS 6.3下Samba服务器的安装与配置
    Linux NFS服务器的安装与配置
    Linux下安装JDK和tomcat
    Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
  • 原文地址:https://www.cnblogs.com/zhengshuhao/p/5159031.html
Copyright © 2020-2023  润新知