文章
2
粉丝
56
获赞
3
访问
572
#include <bits/stdc++.h>
using namespace std;
long long a[1005];
long long s[1005];
long long r[1005];
/*
就是找规律题,越是找规律题,越是要画出来,仔细分析各个项之间的联系与区别
第一天 一行 *
第二天 三行 *** + 2(*)
第三天 五行 ***** + 2(*** + *)
第四天 柒行 ******* + 2(***** + *** + *)
......
等差数列 首项为1 d=2 Sn = na1 + n(n-1)d/2 = n(a1+an)/2
通项公式 an = a1 + (n-1)d
*/
int main(){
int n;
cin >> n;
int x;
a[1] = 1;
a[2] = 3;
s[1] = 1;
s[2] = 4;
r[1] = 1;
r[2] = 5;
int d = 2;
for(int i=0;i<n;i++){
cin >> x;
if(x == 0) cout << 1 << endl;
for(int i=3;i<=x;i++){
a[i] = a[1] + (i - 1) * d; //第i天的细菌行数(也同样是行数中间的细菌个数)
s[i] = i*a[1] + i*(i-1)/2*d; //求前i项和
r[i] = a[i] + 2 * s[i-1]; //第i天的产生的细菌数量
}
cout << r[x] << endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发