题解 | #自守数#

自守数

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

#include<iostream>
using namespace std;
string int_tostr(int d)
{
    string res;
    int s=d/10;
    int y=d%10;
    char ch=y+'0';
    res.push_back(ch);
    while(s)
    {
        y=s%10;
        s/=10;
        ch=y+'0';
        res.push_back(ch);
    }
    return res;
}
bool cmpstr(string src,string dst)
{
    int i=0;
    int j=0;
    while(src[i]!='\0'&&dst[j]!='\0')
    {
        if(src[i]!=dst[j])
        {
            return false;
        }
        i++;
        j++;
    }
    return true;
}
int main()
{
    int d;
    while(cin>>d)
    {
        int count=0;
        for(int i=0;i<=d;i++)
        {
            int v=i*i;
            string stri=int_tostr(i);
            string strv=int_tostr(v);
            if(cmpstr(stri,strv))
            {
                //cout<<stri<<" "<<strv<<endl;
                count++;
            }
        }
        cout<<count<<endl;
    }
    return 0;
}
全部评论

相关推荐

10-17 16:07
门头沟学院 Java
牛牛大你18号:在汇报,突然弹出来,,领导以为我在准备跳槽,刚从领导办公室谈心出来
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务