文章

2

粉丝

56

获赞

3

访问

572

头像
细菌的繁殖 题解:
P1033
发布于2025年2月13日 21:13
阅读数 79

C++找规律

#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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发