Problem:三角形計數
三角形計數
Description
快碼佳編四兄弟姐妹來到了明代,這天他們看到一個很有學術風範的老者在地上畫著東西,一打聽,原來是著名的數學家徐光啟。徐光啟在數學方面的最大貢獻當推《幾何原本》(前6卷)翻譯。徐光啟提出了實用的“度數之學“的思想,同時還撰寫了《勾股義》和《測量異同》兩書。他們看到徐先生在地上畫著好多三角形。把大三角形的每條邊n等分,將對應的等分點連線起來(連線線分別平行於三條邊),這樣一共會有多少三角形呢?程式設計來解決這個問題
Input
第一行為整數t(≤100),表示測試資料組數;接下來t行,每行一個正整數n(≤500)。
Output
對於每個n,輸出一個正整數,表示三角形個數
Sample Input
3
1
2
3
Sample Output
1
5
13
這題分別計數頭朝上的三角形個數和頭朝下的三角形個數。將三角形n等份後,最小的三角形邊長計為1。
1.頭朝上:
以n=4為例,邊長i=1的時候,三角形個數s1=1+2+3+4;
i=2,s2=1+2+3;
i=3,s3=1+2;
i=4,s4=1;
由此可以得出si=(n-i+1)(n-i+2)/2;
所以頭朝上的即為i=1到i=n的si求和;
2.頭朝下 :
n=1, s=0;
n=2, s=0+1;
n=3, s=0+1+2;
n=4, s=0+1+(1+2+3);
n=5, s=0+(1+2)+(1+2+3+4);
n=6 ,s=0+1+(1+2+3)+(1+2+3+4+5);
由此可以推出,n為偶數時,f(n)=(1+…+n-i)+f(n-2);
n為奇數時,f(n)=(1+…+n-i)+f(n-2); 累加即可。
程式碼如下:
#include<iostream>
#include<cstdio>
using namespace std;
int f(int n)
{
if(n%2==0)
{
if(n==2) return 1;
else if(n==4) return 7;
else if(n>4) return (n-1)*n/2+f(n-2);
}
else
{
if(n==1) return 0;
else if(n==3) return 3;
else if(n==5) return 13;
else if(n>5) return (n-1)*n/2+f(n-2);
}
}
int main()
{
int t,sum1,sum2;
cin>>t;
while(t--)
{
sum1=0,sum2=0;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
sum1+=(n-i+1)*(n-i+2)/2;
}
sum2=f(n)+sum1;
cout<<sum2<<endl;
}
return 0;
}
相關文章
- # 數值計算:三角形積分
- 551. Preparing Problem(思維+數學)
- Python計算組合數生成楊輝三角形Python
- Problem L: 第二大的數
- Sum Problem
- Mathematical Problem
- 動態規劃求解數字數字三角形動態規劃
- Prime Ring Problem
- 2019 MCM Problem A
- Yet Another Problem
- Nanami and the Constructive ProblemNaNStruct
- hduoj1002 A + B Problem II (大數相加 字串模擬)字串
- 輸出n行數字三角形
- HDU 1792 - A New Change Problem(規律,最大不能組合數及其個數)
- 【WA】【編碼】數數字-BSG白山極客挑戰賽Problem A-2016.05.20
- 【HDU - 1792】A New Change Problem(推公式、互質數的最大不能表示數)公式
- 洛谷 P1216 數字三角形
- Fixed "There was a problem with the editor 'vi'"
- Prime Ring Problem (dfs)
- HDU - 6182 A Math Problem
- Problem A. Ascending Rating
- E. Not a Nim Problem
- Nanami and the House Protecting ProblemNaN
- P1216 線性DP 數字三角形
- P1865 A % B Problem
- A + B Problem II hd 1002
- Follow/Unfollow problem in system design
- Euclid Problem - PC110703
- HDU 1002 A + B Problem II
- HDU 1792 A New Change Problem
- Joe Harris is a real problem with this team
- Assignment Problem的若干思考
- POJ 2355 Railway Ticket problemAI
- The Door Problem 並查集並查集
- [計算幾何]圓與三角形是否相交
- [Algorithm] 1. A+B ProblemGo
- Solutions for Session Consistency Problem in Web ClusterSessionWeb
- Problem 4:替換空格(字串)字串