天天看點

sgu 107 (987654321 problem)

求n位數中,其平方最後9位數為987654321的個數。

一個數的平方的後n位是由該數的後n位相乘得到,于是先打表算出n<=9時的情況,發現n<=8時無解,n=9時有8個數。

于是n=10時,最高位可以是1-9,低9位隻能是那8個數。總個數為9× 8=72

       n=11時,個數為9*10*8=72*10

      n=k時,個數為72*(k-9)

#include<stdio.h>
#define LL long long

int main()
{
     LL i,n;
    scanf("%lld",&n);
     if(n<9) puts("0");
     else if(n==9) puts("8");
     else
     {
         printf("72");
         for(i=1;i<=n-10;++i) printf("0");
         puts("");
     }
    return 0;
}