#include <bits/stdc++.h> using namespace std; int main () { int a, b; cin >> a >> b; a += b; stack<int> s; bool flag = 0; while(abs(a) > 999) { s.push(abs(a) % 1000); a /= 1000; flag = 1; } cout << a; if(flag) { cout << ","; } int cap = s.size(); for(int i = 0; i < cap; ++i) { // cout << i << " 88888" << s.top() << endl; if(s.top() < 10) { cout << "00"; } else if(s.top() < 100) { cout << "0"; } cout << s.top(); if(i != cap - 1) { cout << ','; } s.pop(); } cout << endl; return 0; }
也可以用数组
#include <bits/stdc++.h> using namespace std; int main () { map<int, double, greater<int>> mp; int a, b; int num = 0; cin >> a; while(a--) { int s; double d; cin >> s >> d; mp[s] += d; } cin >> b; while(b--) { int s; double d; cin >> s >> d; mp[s] += d; } map<int, double, greater<int>> :: iterator it = mp.begin(); for(it = mp.begin(); it != mp.end(); it++) { if(it->second != 0) { num++; } } cout << num; // map<int, double, greater<int>> :: iterator it = mp.begin(); for(it = mp.begin(); it != mp.end(); it++) { if(it->second != 0) { printf(" %d %.1f", it->first, it->second); } } cout << endl; }