10.14模拟T2-Rabbit Number
题目大意
设S(N)为N各位数字之和,如S(484) = 4 + 8 + 4 = 16;定义Rabbit Number为满足S(x*x) = S(x)*S(x)的数,问在(L,R)区间中有多少个Rabbit Number;
解题思路
首先我们可以先暴力打一个表,然后不难发现每一个Rabbit Number的每一位都小于等于3,并且每个Rabbit Number去掉末尾一些数后依旧是一个Rabbit Number.根据这个规律,只需要从0开始搜索,往高位进行进位,可以很容易打出代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#define LL long long
using namespace std;
int n,k,a,b;
LL sum(LL x) {
int ans