题目意思是找到a,b满足 1+2+...+a-1 = a + 1+a+2+...+b
可以推出:2*a^2 = b^2 + b
所以先暴力打个表然后直接输出这个表即可。
#include <iostream>
#include<cmath>
#include<stdio.h>
using namespace std;
long long a[20],b[20];
int main()
{
//freopen("out.txt","w",stdout);
long long bb = 2,aa;
for(int i = 1;i <= 10;)
{
long long tmp = bb * bb + bb;
if(tmp%2)continue; //如果右边结果是奇数
tmp/=2;
aa = sqrt(tmp);
if(aa * aa == tmp)
{
printf("%lld %lld\n",aa,bb);
i++;
}
bb++;
}
return 0;
}
#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
printf("%10d%10d\n",6,8);
printf("%10d%10d\n",35,49);
printf("%10d%10d\n",204,288);
printf("%10d%10d\n",1189,1681);
printf("%10d%10d\n",6930,9800);
printf("%10d%10d\n",40391,57121);
printf("%10d%10d\n",235416,332928);
printf("%10d%10d\n",1372105,1940449);
printf("%10d%10d\n",7997214,11309768);
printf("%10d%10d\n",46611179,65918161);
return 0;
}