您的位置:首页 > 其它

sgu 107 (987654321 problem)

2015-03-10 11:27 288 查看
求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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: