1001 A+B Format (20分)

思路:

1.如果是负的先输出'-',再转换为正数。

2.如果是0,直接输出。

3.以999991为例,先%10,得1,将1存入容器,总数-1(为999990);再%100,得90,除以(100/10),得9,将9存入容器,总数-90(为999900);再%1000,得900,除以(1000/10)得9,将9存入容器,总数-900(为999000)……

4.定义一个变量c初始化为0,每%一次加1,当c!=0 && c%3==0时将一个','放入容器。

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 int main()
 5 {
 6     long long int a, b;
 7     cin >> a >> b;
 8     long long int sum = a + b;
 9     vector<long long int> out;
10     if (sum < 0)
11     {
12         cout << '-';
13         sum = -sum;
14     }
15     long long int mod = 10;
16     int c=0;
17     while (sum*10 >= mod)
18     {
19         if(c!=0 && c %3==0)out.push_back(',');
20         out.push_back(sum % mod / (mod / 10)); 
21         sum -= sum % mod;
22         mod *= 10;
23         c++;
24     }
25   if(out.size()==0)cout << sum;
26     else
27     for (int i = out.size()-1; i >= 0; i--)
28     {
29         if(out[i]>=0 && out[i] <=9)
30         cout << out[i];
31         else
32         cout << char(out[i]);
33   }
34     return 0;
35 }

 

posted @ 2020-05-05 17:15  幻想Elapse  阅读(130)  评论(0编辑  收藏  举报