题解 P2368 【EXCEEDED WARNING B】
分析
先写个小程序 通过暴力枚举:
当n<=8时,无解
当n=9时 有8个满足要求的数:
111111111
119357639
380642361
388888889
611111111
619357639
880642361
888888889
容易知道,某个数的平方为987654321时,以这个数结尾的数,它的平方也是987654321
所以当n>9时,满足条件的数只能以上述八个数结尾
当n=10时,由于最高位不为0,所以又8*9=72个
n=11时,71*10个;n=12时,72*10*10个...以此类推
代码
#include<cstdio>
int n;
int main()
{
scanf("%d",&n);
if (n<9) printf("0\n");
else if (n==9) printf("8\n");
else
{
printf("72");
for (int i=0;i<n-10;i++) printf("0");
printf("\n");
}
return 0;
}