SGU 107 —— 打表找规律

来源:互联网 发布:25岁的程序员小张 编辑:程序博客网 时间:2024/05/21 14:55

107. 987654321 problem

time limit per test: 0.25 sec. 
memory>

For given number N you must output amount of N-digit numbers, such, that last digits of their square is equal to 987654321.

Input

Input contains integer number N (1<=N<=106)

Output

Write answer to the output.

Sample Input

8

Sample Output

0
我们都知道,n的平方取模后的结果只与n的后几位有关,那么我们从sqrt(987654321)—>打表,我们可得九位时有8个解,我们在n前面再加一位数就有8*9 = 72个解,然后再加x位数就有72 *(x - 10)个解。

#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;int main(){//    //freopen("out.txt" , "w" , stdout);//    for(long long i = (long long)(sqrt(987654321.0)) ; i <= 999999999 ; i++)//    {//        if(i * i % 1000000000 == (long long)987654321)//        {//            cout << i << endl;//        }////        cout << (i * i) % 10000000000 << '+' << endl;//    }    int n;    while(~scanf("%d" , &n))    {        if(n < 9)printf("0\n");        else if(n == 9)printf("8\n");        else        {            printf("72");            for(int i = 10 ; i < n ;i++)            {                printf("0");            }            puts("");        }    }    return 0;}

0 0
原创粉丝点击