学習用 -B- Palindromic Numbers
#include <bits/stdc++.h>
using namespace std;
int main(){
int A,B;
cin >> A >> B;
int count = 0;
//A~Bまでのループ
for (int i = A; i <= B ;i++){
//iを取得して、string型に変換
string A_str = to_string(i);
//反転したiを取得
string A_rev_str = A_str;
reverse(A_rev_str.begin(), A_rev_str.end());
//if比較してcount
if(A_str == A_rev_str){
count++;
}
}
cout << count << endl;
}
// 31415 92653入力例
// 612出力例
//回文が何個か
難しかった...。解説をGPTに頼んで、その方針に従ってやりました!
最初はforの多重ループで挑戦しようかと思っていました。
アホなわたしA~Bまでのループをして、A内でもforループして、index[i]==index[-i]みたいなやり方でできないかなと試していたんですけど、混乱して止めました。
なので今回は、A~Bまでのループで、Aを取得したらstring型に変換して、そのreverseされたものも関数で用意して、それをif比較することで回文かどうかをチェックしました。
いい解法で解いている記事見つけました!
https://qiita.com/RoadLynton/items/e7ebc6c16c78829489ef
string型にしたらat()を活用すれば、index[i]==index[-i]こんなことしなくてよかったです。。。
今回5桁の整数なので、10000の位==1の位(at(4)==at(0)) と 1000の位== 10(at(1)===at(3))の位に気づけなかったです。。参考になりました!