
用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 。
输出一定是从小到大的次序。
希望有高手帮忙,不胜感激!!!
好像没有运行时间限制,这是老师给我布置的题目,实在不会写,没办法我就只能拿到这里请教高手了,如果你会,希望你能帮我解决,非常感谢!!! 展开
输入
两个整数m和n
输出
m和n之间的所有自守数,并且以每行5个数的形式输出。注意:输出的每个数的宽度为7
样例输入
11 500
样例输出
25 76 376
提示
注意
当i很大时,i*i会超出int范围。
考虑输入的m和n,可能 m>n 也能 m<n 。
输出一定是从小到大的次序。
希望有高手帮忙,不胜感激!!!
好像没有运行时间限制,这是老师给我布置的题目,实在不会写,没办法我就只能拿到这里请教高手了,如果你会,希望你能帮我解决,非常感谢!!! 展开
2个回答
展开全部
#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;
}
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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询