题解 | #自守数#

自守数

http://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e

#include <iostream>

using namespace std;

bool is_zss(int n)//判断是否为自受术
{
    int nr=n*n,a=0,n_copy=n;//拷贝一份
    //首先判断n是几位数,用a表示
    do
    {n_copy=n_copy/10;
        a++;}
    while(n_copy);
    int t=0;
    for (int i=0;i<a;i++)
    {
        if (n%10==nr%10)
            t++;
        n=n/10;
        nr=nr/10;
    }
    if (t==a)
        return 1;
    else
        return 0;
}

int main ()
{
    int n;
    while(cin>>n)
    {int num=0;
        for (int i=0;i<=n;i++)//o 和1也是自受术啊。
    {

        if(is_zss(i))
            num++;

    }
    cout<<num<<endl;}
}
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务