いつもの通り,締め切りが 2016/12/31 10:00 AM なので,その 1 分後に投稿するように予約
【問題】
入力nに対して
1≦a≦b≦c≦n(a, b, c, nはすべて整数)を満たすa, b, cの中で、これらを3辺とする三角形が成り立つ場合の組み合わせを求めるプログラムを書いてください。
【入力】
標準入力から、整数n(1≦n≦1000000)が与えられます。
【出力】
標準出力に、条件を満たす組み合わせの総数のみを出力してください。
たとえばn = 3とすると、(a, b, c)のすべての組み合わせは、
(1, 1, 1)
(1, 2, 2)
(1, 3, 3)
(2, 2, 2)
(2, 2, 3)
(2, 3, 3)
(3, 3, 3)
の7通りになりますので、7と出力します。
==========
いつもの定石。簡単なプログラムを書いて,n=1,2,3,... の場合の答えを求め,「オンライン整数列大辞典」を参照する。
f = function(n) {
options(scipen=100)
cat(floor((n+1)*(n+3)*(2*n+1)/24))
}
> f(3)
[1] 7
> f(1000)
[1] 83708750
> f(10000)
[1] 83370837500
> f(1000000)
[1] 83333708333750000