小程序员


私信TA

用户名:No01

访问量:78502

签 名:

加油 加油 去北大

等  级
排  名 60
经  验 10999
参赛次数 0
文章发表 82
年  龄 20
在职情况 学生
学  校 河南工院
专  业 物联网

  自我简介:

校学生会干部; 蓝桥杯选手;

解题思路:


首先对1~200000遍历


筛选出满足:    n= n*n % pow(10,n的位数)    即可



参考代码:

/*自守数是指一个数的平方的尾数等于该数自身的自然数。
例如:
25^2=625
76^2=5776
9376^2=87909376
请求出200000以内的自守数?*/
#include<stdio.h>
#include<math.h>

int f1(int n)    //判断此数是几位数
{
 int i=1;
 for(;n>=10;i++)
  n/=10;
 return i;
}

int main()
{
 int i,j;
 for(i=0;i*i<200000;i++)    //遍历
 {
  j=pow(10,f1(i));
  if(i==i*i%j)    //判断该数是否与平方尾相等
  printf("%d %d\n",i,i*i);
 }
 return 0;
}


 

0.0分

2 人评分

  评论区

好像与样例输出的不一样
2019-05-03 20:21:25
就问一下能过吗?
2019-05-03 20:20:47
这不对吧。。。
2018-08-02 23:00:47
写的什么玩意,漏洞百出
2018-07-22 08:20:55
niu b
2018-07-10 09:19:22
  • «
  • 1
  • »