zoukankan      html  css  js  c++  java
  • 关于‘1001.A+B Format (20)’的解题报告

    1001.A+B Format(20)

    首先要感谢一下指导我github上传问题的小伙伴们,捣腾了一整天我终于摸到了一点门路,真的谢谢你们。

    小豪的github

    问题描述:

    Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).

    • Input

      Each input file contains one test case. Each case contains a pair of integers a and b where -1000000 <= a, b <= 1000000. The numbers are separated by a space.

    • Output

      For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.

    • Sample Input

      -1000000 9

    • Sample Output

      -999,991

    解题思路

    • 刚开始拿到题目的时候,我犹豫了一下键入数据的正负号问题,后来想想其实并不需要对键入数据的正负号进行讨论,所以只需要求和运算就好。
    • 接着看到输出数据的类型,不难联想到美式计数法,输出的数据以三个数位为一组,中间通过使用“,”相隔开。
    • a、b和a+b的数据落在[-2000000,2000000]区间内,也就是说在输出时,数据最多的情况需要将其分成三组。
    • 剩下的问题就是在格式的需要上,每三个数位为一组,这就要求不足三位的情形有时候需要用“0”补齐。

    ‘A+B Format’代码

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int a,b,sum;
    	scanf("%d%d",&a,&b);
    	sum=a+b;
    	if(abs(sum)>=1000000)
    	    printf("%d,%03d,%03d",sum/1000000,abs((sum/1000)%1000),abs(sum%1000));
    	else if(abs(sum)<1000)
    	    printf("%d",sum);
    	else
    	    printf("%d,%03d",sum/1000,abs(sum%1000));
    return 0;	
    }
    

    提交记录

    回看代码,发现了一些小细节的疏忽。

    在纠正了代码里小于等于三个数位的输出格式问题以及分类的区间分界问题以后,提交通过。

    附上我的PDF:小豪的pdf
    “谢谢观赏”一脸满足的小豪如上说到。
    (菜鸡小豪的编程历程还在持续做更中......)

  • 相关阅读:
    react父子组件之间传值
    MVC、MVP、MVVM模式的概念与区别
    exports、module.exports 和 export、export default
    进程与线程以及它们的区别
    axios详解
    箭头函数详解
    ES6扩展运算符...
    vue子组件数据跟着父组件改变
    JS实现千分位
    在.NET Core使用TimeZone将客户端时间转服务器本地时间但编译提示已过期
  • 原文地址:https://www.cnblogs.com/S031602219/p/6339782.html
Copyright © 2011-2022 走看看