蓝桥杯决赛 2019 第十届 c/c++ 大学c组 第三题 次方和

题目:

求等于2019的次方和(不重复)
答案:990(不知道对不对,将就看吧)

代码:
#include 
using namespace std;
int sum = 0;
int counts = 0;

void f(int value)
{
	for (int i = value + 1; i < 45; i++) // 44 * 44 = 1936
	{
		sum += i * i;
		if (sum < 2019)
		{
			f(i);
		}
		if (sum == 2019)
		{
			sum -= value * value;
			sum -= i * i;
			counts++;
			break;
		}
		if (sum > 2019)
		{
			sum -= value * value;
			sum -= i * i;
			break;
		}
	}
}

int main()
{
	f(0);
	cout << counts;
	return 0;
}

你可能感兴趣的:(算法学习笔记)