問題(和訳)

https://goo.gl/Blbbd Problem 48 - PukiWiki

回答

seq 1000 | awk '{printf $1"^"$1"+"}' | sed 's/^/(/;s/.$/)%10000000000\n/' | bc

9110846700
 
real    0m1.386s
user    0m1.360s
sys     0m0.000s

解説

深いことは考えず bc で愚直に計算します
入力式: (1^1+2^2+....+1000^1000)%10000000000

 # 1..1000を生成  
 seq 1000 |       
 
 # n^n+ を生成(改行しないで1行で)
 awk '{printf $1"^"$1"+"}' |        
 
 # 行頭に '(' を加え、末尾の '+' を ')%10000000000\n' に変換
 sed 's/^/(/;s/.$/)%10000000000\n/' |
 
 # bc で計算
 bc

別解

bc の代わりに dc を使ってみる
計算式: 1 1 ^ 2 2 ^ ... 1000 1000 ^ +++...+(999個) 10000000000 % p

(seq 1000 | awk '{print $1,$1,"^"}'; yes '+' | head -n 999; echo '10000000000 % p') | dc

9110846700

real    0m1.374s
user    0m1.360s
sys     0m0.000s

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-03-24 (日) 07:44:02