タイトル説明
宿題をしていると、隣に座っていた友達から「7の5倍はいくらですか」と聞かれました。丁寧に微笑んで「53」と言ってください。
この質問では、正の整数の任意のペアについて、積を逆方向に出力する必要があります。
入力形式
最初の行に、スペースで区切って1000を超えない2つの正の整数AとBを入力します。
出力形式
AとBの積を逆方向に1行で出力します。
入力例
5~7
サンプル出力
53
問題解決策1:
解题思路
:最後の桁が0でない限り、前の0を出力できます。
- 一般的な状況:
35
->53
; - 先行ゼロ付き:
1200
->21
; - 真ん中に0があります:
1002
->2001
;
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b;
c = a * b;
bool flag = false;
while(c)
{
if(!(c % 10) && flag) cout << 0;
else if(c % 10) cout << c % 10, flag = true;
c /= 10;
}
return 0;
}
問題解決2
ライブラリ関数:
stoi
:文字列を数値に変換します。reverse
:文字列を水平方向に反転します。to_string
:数値を文字列に変換します。
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
string c = to_string(a * b);
reverse(c.begin(), c.end());
cout << stoi(c) << endl;
return 0;
}