题解 | #自守数#
自守数
https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,k=0,syl,i;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
syl=(i*i)-i;
if(i<10&&syl%10==0)
{
k++;
continue;
}
else
{if(i<100&&i>10&&syl%100==0)
{k++;
continue;
}
else
{if(i<1000&&i>100&&syl%1000==0)
{k++;
continue;
}
else{if(i<10000&&i>1000&&syl%1000000==0)
{k++;
continue;
}
else {
if(i==10000)
{k++;
continue;
}
}
}
}
}
}
printf("%d",k);
}
因为自守数的平方的尾数等于该数自身,因此利用该性质结合自守数的大小范围来判定一个数是不是自守数,以小于10、10到100、100到1000、1000到10000(不含10000),10000作为区间来判定自守数;区间大小是判定自守数的关键。
#自守数#

美团公司福利 3017人发布