比赛 [不是Rapiz出的]农场主钦定NOIP模拟赛1 评测结果 AAAAAAAAAA
题目名称 Rabbit Number 最终得分 100
用户昵称 ‎MistyEye 运行时间 0.093 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2016-11-08 18:57:01
显示代码纯文本
#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
typedef long long ll;
queue<int> q;
int su(ll x) {
	int cnt = 0;
	while(x) cnt += x%10, x /= 10;
	return cnt;
}
int main() {
	freopen("rabbits.in","r",stdin);
	freopen("rabbits.out","w",stdout);
	int l, r, ans = 0; scanf("%d %d", &l, &r);
	q.push(0);
	while(!q.empty()) {
		int p = q.front(); q.pop();
		if(p>r) break;
		if(p>=l) ++ans;
		for(int i=0; i<=3; ++i) {
			if(!p && !i) continue;
			int x = p*10+i, s = su(x);
			if(s*s==su(1LL*x*x)) q.push(x);
			else break;
		}
	}
	printf("%d\n", ans);
	getchar(); getchar();
	return 0;
}