C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++プログラムのダブルベースパリンドローム


このチュートリアルでは、指定された番号が2つの番号システムの回文であるかどうかをチェックするプログラムを作成します。

別の記数法の数と基数を示しました。与えられた数が10進法と与えられた記数法の回文であるかどうかを確認する必要があります。

問題を解決するための手順を見てみましょう。

  • 番号と番号システムベースを初期化します。

  • 与えられた数が10進数システムの回文であるかどうかを確認してください。

  • 数値を文字列形式の別の記数法に変換します。

  • 変換された数値が回文であるかどうかを確認します。

  • 指定された番号が両方の番号システムの回文である場合は、はいと印刷します。 それ以外の場合はいいえ

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
string integer_to_string(int n, int base) {
   string str;
   while (n > 0) {
      int digit = n % base;
      n /= base;
      str.push_back(digit + '0');
   }
   return str;
}
string isDoubleBasePalidrome(int n, int k) {
   int temp = n;
   int number_reverse = 0;
   while (temp > 0) {
      number_reverse = temp % 10 + number_reverse * 10;
      temp /= 10;
   }
   if (number_reverse == n) {
      // converting to base k
      string str = integer_to_string(n, k);
      string str_copy = str;
      // reversing number in base k
      reverse(str.begin(), str.end());
      if (str == str_copy) {
         return "Yes";
      }
   }
   return "No";
}
int main() {
   int n = 313, k = 2;
   cout << isDoubleBasePalidrome(n, k) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

Yes

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. 二重積分を計算するC++プログラム

    変数xの下限、変数xの上限、変数yの下限、変数yの上限、対応するxに対して実行されるステップ、および対応するyに対して実行されるステップが与えられ、タスクは二重積分を生成することです。結果を表示します。 例 Input-: steps for x = 1.2 steps for y = 0.54 lower limit of x = 1.3 upper limit of x = 2.1 lower limit of y = 1.0 upper limit for y = 2.1 Output-: double integration is : 2.1 以下のプログラムで使用されるアプローチは

  2. 数値を逆にするC++プログラム

    数字を逆にするということは、その数字を逆の順序で保存することを意味します。 例:番号が6529の場合、9256が出力に表示されます。 数を逆にするプログラムは次のように与えられます- 例 #include <iostream> using namespace std; int main() {    int num = 63972, rev = 0;    while(num > 0) {       rev = rev*10 + num%10;       num = n