【牛客刷题】每日一练——自守数

简介: 【牛客刷题】每日一练——自守数

hello,进来的小伙伴们,你们好呐!

系列专栏:【牛客刷题】

作者简介:一名双非本科的大三在读生,我很平凡,学会努力!

给大家推荐一个超级好用的刷题网站——牛客网!‘


一、自守数

数学的世界有很多很漂亮的数字或者数字集合,比如梅森数,哥德巴赫猜想,水仙花数,完全数,自守数。今天我们就一起来探究一下自守数。自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数。

输入格式:

第一行输入n,随后输入n个数m。

输出格式:

在一行中输出m以内自守数的个数,所有输出在一行内完成,末尾没有多余空格。

输入样例:

   5

   1

   2

   3

   4

   5

输出样例:

2 2 2 2 3

解题思想:本题第一个关键就是要先求出我们给出数字的位数,然后用n*n除以pow(10,number);便可得到我们的数字n,与之比较是否相等,若相等,则count++,因为0就是自守数,所以最后我们输出的时候是count+1;

   #include<stdio.h>

   #include<math.h>

   //计算位数

   int number(int m)

   {

       int count = 0;

       while(m!=0)

       {

           count++;

           m = m/10;

       }

       return count;

   }

   //计算切断之后的数

   int cutNumber(int x,int number)

   {

       return x%(int)pow(10,number);

   }

   int main()

   {

       int n = 0;

       int m=0;

       scanf("%d",&n);

       while(n--)

       {

           int count = 0;

           scanf("%d",&m);

           for(int i=1;i<=m;i++)

           {

               if(i==cutNumber(i*i,number(i)))

               {

                   count++;

               }

           }

           if(n==0)

           {

               printf("%d",count+1);

           }

           else

           {

               printf("%d ",count+1);

           }

       }

       return 0;

   }


相关文章
|
2月前
lanqiao OJ 2143 最少刷题数
lanqiao OJ 2143 最少刷题数
13 0
|
7月前
|
算法
[leetcode] 快乐数 E
[leetcode] 快乐数 E
|
7月前
|
存储 算法 Java
leetcode-202:快乐数
leetcode-202:快乐数
48 0
|
7月前
leetcode279完全平方数刷题打卡
leetcode279完全平方数刷题打卡
38 0
|
7月前
|
算法 Java C++
「LeetCode」202. 快乐数
「LeetCode」202. 快乐数
44 0
|
Python
牛客刷题之数学基础-约数
牛客刷题之数学基础-约数
54 0
|
C++
剑指Offer - 面试题49:丑数
剑指Offer - 面试题49:丑数
59 0
|
存储 算法
LeetCode:202. 快乐数
题目描述:编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1,那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true ;不是,则返回 false 。
101 0
|
算法 Java
快乐数 (LeetCode 202)
快乐数 (LeetCode 202)
146 0