Loading

PAT 1001 A+B Format

问题:给定A、B(-106<=A、B<=106),计算A+B,并且将结果按指定形式输出。要求的格式是从后往前每三位加一个逗号,以符合西方的数字格式。原问题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805528788582400

输入范例:-1000000、9

输出范例:-999,991

解决方案:

首先读入A、B,然后计算A和B的和,再将二者的和转换成string类型,最后从后往前每三位(用到了string类的函数length())加一个逗号输出即可,唯一需要注意的就是计算结果为负数的情况,这时不能把负号看作是一位。

C++代码:

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 int main() {
 6     int a, b, c;
 7     string ch;
 8     cin >> a >> b;    //读入A、B
 9     c = a + b;        //计算结果
10     ch = std::to_string(c);        //使用to_string()函数将int型变量转变成string类型
11     if (c / 1000 == 0)
12         cout << c << endl;        //计算结果小于四位,直接输出
13     else {
14         ch.insert(ch.length() - 3, ",");
15         if(ch.length() > 7 && c > 0 || ch.length() > 8)        //考虑到负号,这里需要分正负两种情况
16             ch.insert(ch.length() - 7, ",");
17         cout << ch << endl;        //输出结果
18     }
19     return 0;
20 }

 

posted @ 2021-04-06 19:29  山寨功夫侠  阅读(46)  评论(1)    收藏  举报