Time Limit: 1 SecMemory Limit: 128 MB
Submit: 689Solved: 380
Description
给定一个等边三角形,它的每条边被分成n等分,分别用平行于三边的直线过各个n等分点截这个三角形,如图所示:
题目所给三角形
请问,图中总共有多少个三角形?
Input
输入包含多组测试数据,直至EOF。
每组测试数据包含一个正整数n,表示三角形三边被分为了n等份(n<500)。
Output
输出三角形的个数。
Sample Input
1
2
3
Sample Output
1
5
13
规律:n%2==0(偶数)----->(n+1)*(2*n*n+3*n-1)/8) else(奇数)n*(n+2)*(2*n+1)/8)
参考:zcmu 1225:Give me the answer(递推)+1265:数三角形(数论) - 菜鸡的成长史 - CSDN博客
其实还是找规律
AC代码:
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int i,s,n;
int repeat;
while(~scanf("%d",&n))
{
if(n%2==1)
printf("%d\n",(n+1)*(2*n*n+ 3*n-1)/8);
else printf("%d\n",n*(n+2)*(2*n+1)/8);
}
return 0;
}











网友评论