PATレベルB-教えません

タイトル説明
宿題をしていると、隣に座っていた友達から「7の5倍はいくらですか」と聞かれました。丁寧に微笑んで「53」と言ってください。

この質問では、正の整数の任意のペアについて、積を逆方向に出力する必要があります。

入力形式
最初の行に、スペースで区切って1000を超えない2つの正の整数AとBを入力します

出力形式
AとBの積を逆方向に1行で出力します

入力例
5~7

サンプル出力
53


問題解決策1:

解题思路:最後の桁が0でない限り、前の0を出力できます。

  1. 一般的な状況:35-> 53
  2. 先行ゼロ付き:1200-> 21;
  3. 真ん中に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;
}

おすすめ

転載: blog.csdn.net/weixin_46239370/article/details/113933799