题目背景
SGU 107
题目描述
求有多少个平方后末尾为987654321的n位数
输入格式
整数n
输出格式
答案,即[b]“平方后末尾为987654321的n位数”[/b]的个数
输入输出样例
输入 #1
8
输出 #1
0
说明/提示
1≤n≤1 000 000
[b][color=#767676]不要问我暴力能过几个点,我只想说呵呵。[/color][/b]
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
int main() {
int n;
cin >> n;
if(n <= 8) cout << 0 << endl;
else if (n == 9) cout << 8 << endl;
else {
cout << 72;
for(int i = 0; i < n - 10; i++) {
cout << 0;
}
cout << endl;
}
return 0;
}
当n<=8时,无解
当n=9时 有8个满足要求的数:
111111111
119357639
380642361
388888889
611111111
619357639
880642361
888888889
容易知道,某个数的平方为987654321时,以这个数结尾的数,它的平方也是987654321
所以当n>9时,满足条件的数只能以上述八个数结尾
当n=10时,由于最高位不为0,所以又8*9=72个
n=11时,7110个;n=12时,7210*10个…以此类推

被折叠的 条评论
为什么被折叠?



