PAT 甲级 1001:A+B Format (20分)

Step 1:读清题意,题目要求按类似人民币 000,000,000格式分割数字,分为正数与负数2种情况

Step 2:我的 coding 思路如下:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int a, b;
 6     cin >> a >> b;
 7     string change=to_string(a+b);   //数字转字符串
 8     int len=change.length();     //字符串长度
 9     while(len>0)          //判断循环完成
10     for(int i=0;i<len;i++) {
11         if(change[0]!='-'&&len-3>0) change.insert(len-3, ","); //非负  插入逗号
12         if(change[0]=='-'&&len-4>0) change.insert(len-3, ","); //为负
13         len-=3;
14     }
15     cout<<change;
16     return 0;
17 }

 

柳婼思路如下:

 1 #include <iostream>
 2 using namespace std;
 3 int main() {
 4     int a, b;
 5     cin >> a >> b;
 6     string s = to_string(a + b);
 7     int len = s.length();
 8     for (int i = 0; i < len; i++) {
 9         cout << s[i];
10         if (s[i] == '-') continue;
11         if ((i + 1) % 3 == len % 3 && i != len - 1) cout << ",";
12     }
13     return 0;
14 }

 

posted @ 2020-06-08 16:42  $KAMISAMALZ  阅读(128)  评论(0)    收藏  举报