数学/找规律/sgu 107 987654321 problem
题意
求有多少个平方后末尾为987654321的n位数
分析
先写个小程序 通过暴力枚举:
当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个...以此类推
至此,该题解决。
Accepted Code
1 /* 2 PROBLEM:sgu107 3 AUTHER:Rinyo 4 MEMO:找规律 5 */ 6 7 #include<cstdio> 8 int n; 9 int main() 10 { 11 scanf("%d",&n); 12 if (n<9) printf("0\n"); 13 else if (n==9) printf("8\n"); 14 else 15 { 16 printf("72"); 17 for (int i=0;i<n-10;i++) printf("0"); 18 printf("\n"); 19 } 20 return 0; 21 }