题目链接
MT1278自然数n的立方
cnt-=(n-1)*2;
// 此行代码是根据运行结果总结出的规律
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, s = 0, cnt = 1, sum , a[1000] , index = 0, flag = 0;
//s是指n的立方,cnt是奇数,a用存储连续奇数序列,index是a的下标,flag用于跳出循
cin >> n;
s = n * n * n; //n的立方
while (1)
{
sum = 0, index = 0;
//每次循环完,a的下标初始为0;
for (int i = 1; i <= n; i++)
{
a[index++] = cnt;
sum += cnt;
if (sum == s && i == n)
{
flag = 1;
break;
}
cnt += 2;
}
// 如果n为偶数,每次都将cnt(奇数)进行 cnt-(n-1)*2 运算
if (n % 2 == 0)
cnt -= (n - 1) * 2;
if (flag == 1)
{
cout<<n<<'*'<<n<<'*'<<n<<'=';
for(int j=0;j<n-1;j++)
cout<<a[j]<<"+";
cout<<a[n-1]<<'='<<s;
break;
}
}
return 0;
}