鱼C论坛

 找回密码
 立即注册
查看: 2531|回复: 6

判断自守数

[复制链接]
发表于 2020-3-4 15:32:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入任意一个数,判断它是否为自守数。
如果一个自然数的平方数的尾部任然为该自然数本身,则称其为自守数。例如:
5 * 5 = 25
76 * 76 = 5776
625 * 625 = 390625
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-4 15:39:29 | 显示全部楼层
把整个程序的数值定义成字符型,输入一个数后获取长度,计算平方,用分片判断尾部是否是该数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 15:49:25 | 显示全部楼层
  1. def test(n):
  2.     result = n * n
  3.     n, result = str(n), str(result)
  4.     if result[len(n):] == str(n):
  5.         return True
  6.     return False

  7. print(test(5))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 16:39:40 | 显示全部楼层
自己写的代码,还是不够精炼,当然,你也得考虑到int的取值范围,超范围可能就不对了
  1. #include "stdafx.h"
  2. #include <string.h>
  3. #include "math.h"
  4. #include<iostream>
  5. using namespace std;


  6. int isnum(int num){
  7.         int j,i,len1,len2,ret;
  8.         j=num*num;
  9.         char *str1,*str2;
  10.         i=ret=0;
  11.         str1=(char*)malloc(256*sizeof(char));
  12.         str2=(char*)malloc(256*sizeof(char));
  13.         itoa(num, str1, 10);
  14.         itoa(j, str2, 10);
  15.         len1=strlen(str1);
  16.         len2=strlen(str2);
  17.         printf("%2d %2d %2d %2s %2s\n",j,len1,len2,str1,str2);
  18.         while((str1+len1-i) !=str1)
  19.         {
  20.                 i++;
  21.                 printf("%c %c\n",*(str1+len1-i),*(str2+len2-i));
  22.                 if(*(str1+len1-i)!=*(str2+len2-i))
  23.                 {
  24.                         ret=0;
  25.                         break;
  26.                 }
  27.                
  28.                
  29.                 ret=1;
  30.          }
  31.        

  32.         return ret;

  33. }

  34. void test(){

  35.         int a;
  36.         a=isnum(13);
  37.         printf("%d",a);//1是 0不是

  38.        
  39. }



  40. int main()
  41. {
  42.                 test();
  43.         system("pause");
  44.         //getchar();
  45.         return 0;
  46. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 02:56:20 From FishC Mobile | 显示全部楼层
对任意一个整数进行求余,只要余数是1,5,6,那么就是自守数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 02:56:57 From FishC Mobile | 显示全部楼层
任意一个数n
n%10即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 02:57:50 From FishC Mobile | 显示全部楼层
emm,0也算
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-3 12:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表