sgu 107 987654321 problem

    其实挺水的,因为两个数平方,只有固定的后面几位数会影响到最后结果的后面几位数。也就是说,如果想在平方之后尾数为987654321,那么就有固定的几个尾数在平方后会是这个数,打个表,发现 10^8 内 没有,10^9 内只有 8 个,然后排列组合……

上代码:

#include <cstdio>

#include <cstring>

#include <cstdlib>

#include <cstring>

using namespace std;

typedef long long LL;



int main()

{

    int n;

    scanf("%d", &n);

    if (n <= 8) printf("0\n");

    else if (n == 9) printf("8\n");

    else

    {

        printf("72");

        for (int i = 1; i <= n-10; ++i)

            printf("0");

        printf("\n");

    }

}

 

你可能感兴趣的:(em)