#include<math.h>
int shouxing(){
int i,n,c
c=0
printf("守形数有:")
for(i=2i<1001i++){
n=pow(i,2)
if(i<10 &&n%10 == i){//一位数守形数
printf("%d,",i)
c++
}
else if(i<100 &&n%100==i){//二位数守形数
printf("%d,"i)
c++
}
else if(i<1000 &&n%1000 == i){//三位数守形数
printf("%d,"i)
c++
}
else{//1000不是守形数
printf("共计%d个",c)
}
}
return 1
}
#include#define
M
2
#define
N
1000
main()
{
int
num,count=0,i,j,lenth=0
printf("从%d到%d之中的守形数有:\n",M,N)
for(i=Mi<=Ni++)
{
num=i
j=1
while(num!=0)
{
num=num/10
lenth++
}
while(lenth!=0)
{
j=10*j
lenth--
}
if((i*i-i)%j==0)
{
printf("%d\t",i)
count++
}
}
printf("\n共计%d个",count)
}
//若正整数n是它的平方数的尾部,则称n为守形数,又称同构数。//例如:6是其平方数36的尾部,76是其平方数5776的尾部,6和76都是守形数。
#include<stdio.h>
int main()
{
int i
for(i=2i<=1000i++)
{
if(i<10)
{
if(i==(i*i)%10) //%号是取余数,直接比对余数是否和i相等即可
{
printf("%d*%d=%d\n",i,i,i*i)
//输出格式可以自己随便改,如printf("%d\n",i)
//我这样写只是方便你理解
}
}
else if(i>=10 && i<100)
{
if(i==(i*i)%100)
{
printf("%d*%d=%d\n",i,i,i*i)
}
}
else
if(i==(i*i)%1000)
{
printf("%d*%d=%d\n",i,i,i*i)
}
}
return 0
}
//运行截图: