C++での回文整数
numという非負の整数があるとすると、それが回文であるかどうかを確認する必要がありますが、文字列は使用しません。
したがって、入力が1331のような場合、出力はtrueになります。
これを解決するには、次の手順に従います-
-
ret:=0
-
x:=num
-
num> 0の場合、実行-
-
d:=num mod 10
-
ret:=ret * 10
-
ret:=ret + d
-
num:=num / 10
-
-
xがretと同じ場合はtrueを返します
理解を深めるために、次の実装を見てみましょう-
例
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool solve(int num) {
int ret = 0;
int x = num;
while(num > 0){
int d = num % 10;
ret *= 10;
ret += d;
num /= 10;
}
return x == ret;
}
};
main() {
Solution ob;
cout << (ob.solve(1331));
} 入力
1331
出力
1
-
C++でゲームVをジャンプする
arrと呼ばれる整数の配列と整数dがあるとします。 1つのステップで、インデックスiから-にジャンプできます。 i + xここで、i +x
-
数値が回文であるかどうかをチェックするC++プログラム
回文数は、桁が逆になっても同じままです。つまり、値は変わりません。回文数は対称とも呼ばれます。例:数字12321、1551、11などは、数字が逆になっても変わらないため、回文です。 番号が回文であるかどうかをチェックするプログラムは次のとおりです。 例 #include<iostream> using namespace std; void palindrome(int num) { int rev=0,val; val = num; while(num > 0) {