华为OJ基础篇-自守数

自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数。
自守数经常出现在各类编程书籍的习题中,应该是比较常见的题目吧,当然解决途径也很多,既然是常见题那么记录下来也就有必要了。

bool PanDuan(int i){
    int x = i *i;
    bool flag = true;
    while (i > 0){
        if (x % 10 == i % 10){

            x=x / 10;
            i = i / 10;
        }
        else{
            flag = false;
            break;
        }
    }
    return flag;
}
void hwOJ(){
    int N = 0;
    int count = 0;
    cin >> N;

    for (int i = 0; i <= N; ++i){
        if (PanDuan(i))
            ++count;
    }
    cout << count;
    cout << endl;
}

你可能感兴趣的:(C++,OJ)