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");
    }
}

 

posted @ 2014-06-02 17:21  handsomeJian  阅读(107)  评论(0编辑  收藏  举报