1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AtCoder C++】-B- ABC090 Palindromic Numbers

Last updated at Posted at 2024-03-05

学習用 -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))の位に気づけなかったです。。参考になりました!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?