题目背景
三角形计数(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;
}
}