基本思路:
这道题暴力拿到14分并不难,根据题意模拟即可,具体代码在下面。
至于最后一个测试点超时的问题,现已解决,AC代码在第二部分哦~
参考代码(14分):
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll num[100005];
int main()
{
for(int i = 1; i <= 50000; i++)
num[i] = i*i;
int n;
cin >> n;
int res, i = 0;
int l, r;
while(1)
{
l = 0, r = 0;
for(int j = 1; j <= n+1; j++)
l += num[i+j-1];
for(int j = i+n+1; j <= i+n+n; j++)
r += num[j];
if(l == r)
{
res = i;
break;
}
i++;
}
for(int i = 1; i <= n+1; i++)
{
if(i > 1)
printf(" + ");
printf("%d^2", res+i-1);
}
printf(" =\n");
for(int i = 1; i <= n; i++)
{
if(i > 1)
printf(" + ");
printf("%d^2", res+n+i);
}
return 0;
}
参考代码(15分):
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
int res = 2*n*n + n;
for(int i = 1; i <= n+1; i++)
{
if(i > 1)
printf(" + ");
printf("%d^2", res+i-1);
}
printf(" =\n");
for(int i = 1; i <= n; i++)
{
if(i > 1)
printf(" + ");
printf("%d^2", res+n+i);
}
return 0;
}
具体思路参考这位大佬啦~
思路来源