题解 | #自守数#

自守数

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

#include<bits/stdc++.h>
using namespace std;
int digitnum(int num) {    //返回参数num的十进制位数
    int count = 0;
    while(num!=0) {
        num /= 10;
        count++;
    }
    return count;
}
int main() {
    int n;    //n用来存放输入的整数
    while(cin>>n) {    //输入整数n
        int count = 0;    //count记录满足条件的自守数的数量
        for(int i=0;i<=n;i++) {    //判断0~n之间的自守数
            int a = pow(i, 2);    //a = i^2;
            int b = pow(10, digitnum(i));    // b = 10^(i的十进制位数)
            if(a%b == i)    //a%b即为平方的尾数用于和i进行比较
                count++;    //计数器自增1
        }
        cout<<count<<endl;    //输出计数器的值
    }
    return 0;
}
全部评论
比我转化为字符串进制比较好多了
点赞 回复 分享
发布于 2022-07-16 18:55

相关推荐

昨天 20:41
已编辑
北京交通大学 算法工程师
字节跳动 训练框架研发 (N+2) * (12 + 3) 硕士211
点赞 评论 收藏
分享
秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务