胖虎


私信TA

用户名:Awt100

访问量:2708

签 名:

等  级
排  名 1561
经  验 2711
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 CSUST
专  业

  自我简介:

#include <stdio.h>
#include <math.h>


/**
这个函数用来求一个数有几位,例如12345有5位。 
*/
int sizes(int n)
{
    int count=1;
    while(n/10!=0)
    {
        count++;
        n=n/10;
    }
    return count;
}


/**
这个函数用来求n^m,其中n,m均为整数。 
*/
long long mypow(int n,int m)
{
    int i;
    long long s=1;
    for(i=1;i<=m;i++)
    {
        s=s*n;
    }
    return s;
}


int main()
{
    int i,n;
    int a[50],count=0;
    for(i=0;i<=200000;i++)
    {
        n=sizes(i);
        
        /**
        核心思路在下面这个if式子里
        自守数的平方减去自守数,得到的值能够整除10的自守数的位数次方。
        例如:9376^2=87909376 
        9376有4位,
        87909376-9376=87900000
        则 87900000 % 10^4 ==0 
        */
        
        if( (mypow(i,2)-i) % mypow(10,n) == 0)
        {
            //将符合条件的值存入数组中,方便格式化输出 
            
            a[count]=i;
            count++;
        }
    }
    
    for(i=0;i<count;i++)
    {
        if(i==count-1)
        printf("%d",a[i]);
        else
        printf("%d  ",a[i]);//天坑,这里要求两个空格 
    }
    
    return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区