この完全なコードを Python で 1 行だけで記述するにはどうすればよいでしょうか。
t=int(input())
while t>0:
n=int(input())
s=sum(1/(2.0*i+1) for i in range(n))
print "%.15f"%s
t-=1
この完全なコードを Python で 1 行だけで記述するにはどうすればよいでしょうか。
t=int(input())
while t>0:
n=int(input())
s=sum(1/(2.0*i+1) for i in range(n))
print "%.15f"%s
t-=1
どういたしまして
for t in range(int(input()), 0, -1): print '%.15f' % sum(1/(2.0*i+1) for i in range(int(input())))
編集(説明):
まず、 while ループの代わりにfor ループをrangeで使用できます。for ループの最後の引数は、毎回プラス 1 のデフォルトではなく、毎回 1 を引くための -1 です。
if ステートメントまたはループ内にステートメントが 1 つしかない場合、次の行に移動せずに 1 つのステートメントを同じ行に保持できます。
n の変数を作成する代わりに、一度しか使用されないため、単純にプラグインできます。sも同様です。
for _ in range(input()):print"%.15f"%sum(1/(2.0*i+1)for i in range(input()))
exec"print sum((-1.)**i/(i-~i)for i in range(input()));"*input()
この質問に答えるには遅すぎることはわかっていますが、上記のコードでも同じ結果が得られます。さらに短くなります。短くする方法も模索中です。#CodeGolf #Python2.4