同构数

同构数今天突然看到了关于同构数的问题 试着理解了一下同构数的概念 正整数 n 若是它平方数的尾部 则称 n 为同构数

今天突然看到了关于同构数的问题,试着理解了一下同构数的概念:
正整数n若是它平方数的尾部,则称n为同构数。
例如:5的平方数是25,且5出现在25的右侧,那么5就是一个同构数。(百度百科里的解释)
根据这个定义,去实现算法的代码。
代码如下:

#include <stdio.h> #include <math.h> //num的位数,如:25的位数为2 int Count(int Num) { 
    int i = 0; while(Num) { 
    i ++; Num = Num / 10; } return i; } int main(int argc, char* argv[]) { 
    int i = 1; for(i = 1;i <= 1000;i ++) { 
    //i*i 对 10的Count(i)次方取余,余数如果与i相等,则i为同构数 if(i * i % (int)(pow(10,Count(i))) == i) { 
    printf("%d\n",i); } } return 0; } 

其中Count函数用于求出有可能成为同构数的位数(如25的位数为2,则25的平方[625]的尾数如果等于25,则25为同构数)

例子中求出的是1-1000之间的同构数,运行结果为:

  当然,求同构数的算法还有更好的,我只是写了最普通的一种,但是我还是坚持自己的观点,弄懂一种比每一种都大概知道但是却都理解的不透彻要好!虽然这个方法不是最好的,但是通过实际敲代码,还是让我理解的更透彻了,虽然算法简单,但是在实现的时候还是出现了逻辑错误,当然不是因为刚开始代码实现不了,而是写着写着发现自己之前的解法是有问题的。只有真正去实践,才能发现问题,从而找到解决方案!

今天的文章 同构数分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-13 07:01
下一篇 2024-12-14 23:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/85919.html