[ABC343C] 343 题解
题目大意
给你一个数 n n n,让你寻找一个小于 n n n 的完全立方数,同时要求该完全立方数是回文串,求这样的数在小于 n n n 情况下的最大值。
解题思路
直接枚举小于 n n n 的完全立方数,然后判断它是否是回文串,若果是就选择它。
注意:数据范围较大,要开 l o n g l o n g long long longlong。
代码如下
#include<bits/stdc++.h>
using namespace std;
long long n,ans;
int main(){
cin>>n;
long long p=1,o=1;
//p是完全立方数,o是p的被开立方数
while(p<=n){
int q=0,ff=0;
long long u=p,x=1,y=1;
while(u!=0){
q++;
x*=10;
u/=10;
}
x/=10;
while(x>=y){
if(p%(x*10)/x!=p%(y*10)/y){
ff=1;
break;
}
x/=10,y*=10;
}
if(ff==0){
ans=p;
}
//判断是否是回文串
o++;
p=o*o*o;
}
cout<<ans;
return 0;
}
如有不足,欢迎指出!!!