标题:求自守数
取消只看楼主
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
结帖率:100%
 问题点数:0 回复次数:1 
求自守数
如果一个整数的平方的后面几个数等于它自身,我们就称之为自守数,如5*5=25;25*25=625;现求1到任意数之间的所有自守数编程如下:
#include<stdio.h>
#include<stdlib.h>
main()
{
   int a,m,n=0,k,k2=1,i,j=0,b[20]={0};
   long k1,k4;
   printf("请输入范围(1到?)内:");
   scanf("%d",&k);
   for(a=1;a<=k;a++)
   {   
      m=a;
      while(m!=0)
      {
         m/=10;
         n++;
       }
      k1=a*a;
      for(i=0;i<n;i++)
      {
         k2=k2*10;
       }
      k4=k1%k2;
      if(k4==a)
      {
         b[j]=a;
         j++;
       }
    }
    printf("1到%d内总共有%d个自守数,它们是:\n",k,j);
    for(i=0;i<j;i++)
    {
      printf("%d",b[i]);
     }
   system("pause");
}
编译没问题,但运行总是出错!
搜索更多相关主题的帖子: include 
2016-06-18 20:41
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:0 
问题找到了,n在每次循环前都要归零,k2则要归1,不能写在for外
2016-06-18 21:15



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




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

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