题意:两个数求和,对于和从后往前每3个数输出一个",",直到剩余的数小于4.
解题思路:用字符串模拟整数进行操作。
用到C++ string中的insert函数在指定位置插入一个字符 insert有2个参数:第一个为迭代器的位置 第二个为要在该位置插入的字符。
和分情况讨论:
1. 为0 直接输出0 返回
2。小于0 输出"-" 号 取相反数后 进行有关操作。
先试了下insert函数如下:
string s = "lpho"; string::iterator iter; iter = s.begin(); //iter++; //iter++; iter += 2; s.insert(iter, 'w'); cout << s.c_str() << endl; //输出lpwho..
本题代码:
#include "iostream" #include "cstring" using namespace std; int main() { int a, b; int sum; string str_ans; cin >> a >> b; sum = a + b; if (sum == 0) { cout << 0 << endl; return 0; } if (sum < 0) { cout << "-"; sum = -sum; } int k = 0; while (sum != 0) { int temp = sum % 10; if(k>0 && k %3==0 ) str_ans.insert(str_ans.begin(),','); str_ans.insert(str_ans.begin(), temp+'0'); sum /= 10; k++; } cout << str_ans.c_str() << endl; return 0; }