天天看點

自守數(C++牛客網)

解題思路:

(1)注意超出範圍

#include<iostream>

using namespace std;

bool judge(long long n) {
    long long m=n*n;
    string s1=to_string(m);
    string s2=to_string(n);
    if(s1.substr(s1.length()-s2.length(),s2.length())==s2) return true;
    else return false;
}

int helper(long long n) {
    int count=0;
    for(long long i=0;i<=n;i++) {
        if(judge(i)) count++;
    }
    return count;
}

int main() {
    long long n;
    while(cin>>n) {
        cout<<helper(n)<<endl;
    }
    return 0;
}
           

繼續閱讀