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 Sample Output |
我們都知道,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;
}