题目背景

三角形计数(triangle) 递推

题目描述

把大三角形的每条边n等分,将对应的等分点连接起来(连接线分别平行于三条边),这样一共会有多少三角形呢?编程来解决这个问题。

输入格式

第一行为整数t(≤100),表示测试数据组数;接下来t行,每行一个正整数n(≤500)。

输出格式

对于每个n,输出一个正整数,表示三角形个数。

画图来解释此题:

于是就有了AC代码:

#include<bits/stdc++.h>
using namespace std;
int a(int b)
{
	int ans=1,a1=4,a2=4,a3=2;
	for(int i=1;i<b;i++)
	{
		ans+=a1;
		a1+=a2;
		a2+=a3;
		if(a3==2) a3=1;
		else a3=2;
	}
	return ans;
}
int main()
{
	int b,l;
	cin>>b;
	while(b--)
	{
		cin>>l;
		cout<<a(l)<<endl;
	}
}

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐