na_beginning的專欄
阿新 • • 發佈:2018-12-27
Talk is cheap, show me the code.
一、問題描述
輸入一個整數,將這個整數以字串的形式逆序輸出
程式不考慮負數的情況,若數字含有0,則逆序形式也含有0,如輸入為100,則輸出為001
輸入描述:
輸入一個int整數
輸出描述:
將這個整數以字串的形式逆序輸出
輸入例子:
1516000
輸出例子:
0006151
二、問題分析
有多種方法,可以直接讀入一個字串,然後對字串倒序,可以用標準庫algorithm中的reverse方法,或者直接用反向迭代器反向輸出。也可以讀入一個整數,然後分別取數,儲存在一個字串中,因為末位的0反向輸出時在首位不能去掉,所以必須使用字串來儲存反向後的數。另外,還有一點值得注意,就是當輸入的整數為0時,這個特殊情況需要特殊考慮。
解題方式1:
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
string s;
while (cin >> s)
{
reverse(s.begin(), s.end());
cout << s << endl;
}
return 0;
}
解題方式2:
#include <iostream> #include <string> #include <iterator> using namespace std; int main() { string s; while (cin >> s) { string str; for (string::reverse_iterator it = s.rbegin(); it != s.rend(); ++it) { str += (*it); } cout << str << endl; } return 0; }
解題方式3:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int a;
while (cin >> a)
{
if (a == 0)
cout << a << endl;
string s;
while (a)
{
int temp = a % 10;
s += (temp + '0');
a /= 10;
}
cout << s << endl;
}
return 0;
}