题目大意:要你找到一个start和一个end,满足1+2+...+start-1 = start+1 + start+2 + ... + end,输出十个满足的start和end
解题思路:化简上面的俄式子得,start = sqrt((end * end + end) / 2),如果开根号了得到的刚好是整数,就表示这个start和end是满足的
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main() {
int temp2;
long long t;
int count = 0;
for(long long i = 8; ; i++) {
t = (i * i + i) / 2 ;
temp2 = int(sqrt(t));
if(sqrt(t) - temp2 == 0) {
printf("%10d%10lld\n",temp2,i);
count++;
}
if(count == 10)
break;
}
return 0;
}