公式

C - 343 解説 by cn449


\(N\) 以下の立方数は \(O(N^\frac{1}{3})\) 個しかありません。したがって、\(N\) 以下の立方数すべてについて全探索し、\(10\) 進表記したときに回文になるか判定することでこの問題を解くことができます。

実装例

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

bool check(ll n) {
    string s = to_string(n);
    string t = s;
    reverse(t.begin(), t.end());
    return s == t;
}

int main() {
    ll n;
    cin >> n;
    ll ans = 0;
    for (ll i = 1; i * i * i <= n; i++) if (check(i * i * i)) ans = i * i * i;
    cout << ans << '\n';
}

投稿日時:
最終更新: