看了Y总的版本,感觉自己写复杂了,直接用字符串来存比较好。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
vector<int> nums;
int main()
{
cin >> n;
bool is_minus = false; //n正负数判断和预处理
if (n < 0) is_minus = true;
n = abs(n);
while (n) //倒着送入vector
{
nums.push_back(n % 10);
n /= 10;
}
reverse(nums.begin(), nums.end());
while (nums.size() > 1 && nums.back() == 0) nums.pop_back(); //去掉前缀0
reverse(nums.begin(), nums.end());
if (is_minus) cout << '-'; //输出
for (int i = 0; i < nums.size(); i ++ )
cout << nums[i];
return 0;
}
Y总版本
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
string a;
cin >> a;
reverse(a.begin(), a.end());
if (a.back() == '-')
{
cout << '-';
a.pop_back();
}
int i = 0;
while (i + 1 < a.size() && a[i] == '0') i ++ ;
while (i < a.size()) cout << a[i ++ ];
cout << endl;
return 0;
}