呃……这个题可以和103 并驾齐驱……
107. 987654321问题
时间: 0.75 sec
空间: 4096 KB
对于给定的正整数N求出有多少10进制N位数满足它的平方末尾是987654321。
输入
包含 N (1<=N<=106)
输出
答案。
样例输入
8
样例输出
0
【解题思路】
我们很容易想到……平方末尾只和原数末尾有关。
用一个爆搜的程序枚举末位为1或9的平方末尾为987654321的数(1-1e9),总共得到了8个9位数。
程序:
这说明,n<9的时候无解,n=9的时候有8个,而且n>9的时候,只要n位数k的末9位是前8个中的任意一个,他的平方末尾就是987654321。
然后我们推出如下的数学公式。
n<9 ,ans=0
n=9 ,ans=8
n>9 ,ans=8*9*10^(n-10)
分情况讨论输出即可。
【AC代码】