2011-06-01 22:37:30Morris
d297: 算算算....Lunatic
http://zerojudge.tw/ShowProblem?problemid=d297
內容 :
請求正三角形中有多少個正三角形?
輸入說明
:
每一行有一個數字 n 表示正三角形的邊長。
輸出說明
:
對每一行輸出答案。答案小於二十二億。
d297: 算算算....Lunatic
範例輸入 :
1 2 3 4 5
範例輸出 :
1 5 13 27 48
提示
:
正三角形的邊長皆為正整數,最小為一。
出處
:
me
(管理:asas)
分成正立跟倒立兩個部份,去導公式
ans = [(a+1)*a/2 + a*(a-1)/2]
+ [a*(a-1)/2 + (a-2)*(a-3)/2] + [(a-1)*(a-2)/2 + (a-4)*(a-5)/2] ....
L 小三角形邊長
[(a+1)*a/2 + a*(a-1)/2] L = 1 => 前面是正立 後面是倒立 的個數
[a*(a-1)/2 + (a-2)*(a-3)/2] L = 2 ... 類推
切記,如果個數 乘 出來為 負,請不要記入
/**********************************************************************************/分成正立跟倒立兩個部份,去導公式
ans = [(a+1)*a/2 + a*(a-1)/2]
+ [a*(a-1)/2 + (a-2)*(a-3)/2] + [(a-1)*(a-2)/2 + (a-4)*(a-5)/2] ....
L 小三角形邊長
[(a+1)*a/2 + a*(a-1)/2] L = 1 => 前面是正立 後面是倒立 的個數
[a*(a-1)/2 + (a-2)*(a-3)/2] L = 2 ... 類推
切記,如果個數 乘 出來為 負,請不要記入
/* Problem: d297 "算算算....Lunatic" from me */
/* Language: C */
/* Result: AC (4ms, 266KB) on ZeroJudge */
/* Author: morris1028 at 2011-05-31 22:03:10 */
/**********************************************************************************/
#include<stdio.h>
main() {
long long N, t, U, L;
while(scanf("%lld", &N) == 1) {
U = (N*N*N+3*N*N+2*N-(N*(N+1)*(2*N+4)/3))/2;
t = N / 2;
L = (t*(N*N+3*N+2)+(t*(t+1)*(4*t-6*N-7))/3)/2;
printf("%lld\n", U+L);
}
return 0;
}
上一篇:d411. 算了好久......
下一篇:a097. PARKET