这道题怎么用递归做啊?
查看原帖
这道题怎么用递归做啊?
298402
cccyyylll888楼主2020/8/5 16:38
#include<iostream>
using namespace std;
bool pingfang(long long x)
{
	for(int i = 1;i * i <= x;i++)
	{
		if(i * i == x) return true;
	}
	return false;
}
long long he(long long y)
{
	long long cnt = 0;
	while(y != 0)
	{
		cnt += y % 10;
		y /= 10;
	}
	return cnt;
}
int main()
{
	long long n,m;
	cin >> n >> m;
	int cnt = 0;
	for(long long i = n;i <= m;i++)
	if(pingfang(he(i*i)))
	{
		if(he(i) * he(i) == he(i*i))
		{
			cnt++;
		}
	}
	cout << cnt;
	return 0;
}
2020/8/5 16:38
加载中...