用C语言编译程序:求自守数

求自守数。自守数是指一个数的平方的尾数等于演数自身。例如,25就是—个自守数,因为252=625,末两位数为25;9376是一个自守数,因为93762=87909376.... 求自守数。自守数是指一个数的平方的尾数等于演数自身。例如,25就是—个自守数,因为252=625,末两位数为25;9376是一个自守数,因为93762=87909376.末4位数为9376。编写程序.从键盘输入整数m和n(10<m,n<200000),求出m与n之间所有的自守数,并且以每行5个数的形式输出。注意:输出的每个数的宽度为7

输入

两个整数m和n

输出

m和n之间的所有自守数,并且以每行5个数的形式输出。注意:输出的每个数的宽度为7

样例输入

11 500

样例输出

25 76 376

提示

注意

当i很大时,i*i会超出int范围。

考虑输入的m和n,可能 m>n 也能 m<n 。

输出一定是从小到大的次序。

希望有高手帮忙,不胜感激!!!
好像没有运行时间限制,这是老师给我布置的题目,实在不会写,没办法我就只能拿到这里请教高手了,如果你会,希望你能帮我解决,非常感谢!!!
展开
 我来答
zx198799
推荐于2017-05-24 · TA获得超过1225个赞
知道小有建树答主
回答量:509
采纳率:100%
帮助的人:327万
展开全部
#include <stdio.h>

int main()
{
int m,n;
printf("输入m,n:");

while(1)
{
scanf("%d %d",&m,&n);
if(m<=10||m>=200000 || n<=10||n>=200000)
printf("输入错误,请重新输入:\n");
else
break;
}

if(m>n)
{
m-=n;
n+=m;
m=n-m;
}

printf("%d到%d之间的自守数有:\n",m,n);
int i;
int temp;
int count=0;
while(m<=n)
{
temp = m*(m-1);
i=1;
while(i<=m)
i*=10;
if(temp%i==0)
{
count++;
printf("%7d",m);
if(count%5==0)
printf("\n");
}
m++;
}

printf("\n");
return 0;
}
kxg405707818
2010-06-14 · TA获得超过1132个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:179万
展开全部
我先问一句:有运行时间限制么?

然后提醒你:
如果不是纯为了解决计算机问题,可以去百度百科上查一下 自守数 ,里面的介绍可以提供你更巧妙的方法。

请在补充问题里回答,我看到会回复的。

希望对你有帮助。

回来看了,zx198799 的程序没有问题,我没有必要再写一遍了。
更何况,如果我没猜错,现在就算给你也过时了吧?你们老师没说你吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式