标题:求助:同构数
只看楼主
cmbjxccwtn
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-10-9
结帖率:100%
已结贴  问题点数:20 回复次数:4 
求助:同构数
同构数是指一个数的平方的尾数等于该数本身。如:   
     0^2 = 0
    1^2 =1
    5^2 =25
从键盘上输入k,输出第k个同构数。
这个应该怎么做呢?
搜索更多相关主题的帖子: 等于 输出 输入 键盘 平方 
2019-10-09 19:59
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:14 
程序代码:
#include<stdio.h> 
main()
{
printf("please input the number(integer):\n");
int a;
scanf("%d",&a);
int b=a*a-a;
int c=a,d=b;
while((c=c/10)!=0)

 {
    if(d%10!=0)
      {
          printf("%d no %d*%d=%d",a,a,a,a*a);
         // return; 
      }
     d=d/10;

 }
if(d%10!=0)
printf("%d no %d*%d=%d\n",a,a,a,a*a);
else
printf("%d yes %d*%d=%d\n",a,a,a,a*a);
}
2019-10-09 21:19
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:3 
程序代码:
#include <stdio.h>
int main()
{
    int a,b,c,d;
    scanf("%d",&d);
    for(b=1;c=b;b++)
    {
       for(a=10;(c/=10)?(a*=10):0;) 
       ;                              //计算基数的位数
       if((b*b)%a==b) --d; 
       if(!d) break;
    }
    printf("%d",b);
    return 0;
}
2019-10-10 05:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:3 
你这输入的 k 总有个范围吧?
0, 1, 5, 6, 25, 76, 376, 625, 9376, 90625, 109376, 890625, 2890625, 7109376, 12890625, 87109376, 212890625, 787109376, 1787109376, 8212890625, 18212890625, 81787109376
当 k==20 时,8212890625*8212890625 的结果 uint64_t 就已经放不下了。

如果 k 取值范围比较小,那代码怎么简单怎么来,例如
bool foo( unsigned long long n )
{
    unsigned long long m = n*n;
    for( ; n!=0; n/=10,m/=10 )
    {
        if( m%10 != n%10 )
            return false;
    }
    return true;
}
如果 k 取值在20以内,那么要提高效率。根据规律,在最后的5或6结尾的同构数数位前添加尝试,比如 9376 前添加 10 变为 109376
如果 k 取值在20以上,那算法还得改
不说 k 的范围这题目就没法做


2019-10-10 10:26
dishao8023
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-10-10
得分:0 

2019-10-10 15:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497154-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017458 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved