今日は、とある大学のC言語テストの過去問を解いたのを寝かしておいたら、しばらくしてもっといい回答の可能性をひらめいた話です。
別の大学に通っている理工学部の同級生がC言語のテストがあると言っていて、そのテストの過去問を見せてくれました。
解いてみました。
問題:次の式に従った計算をdouble型で行い、その結果を有効桁15桁で出力するCプログラムを作成せよ。(左から順に計算すること)
0+1/2-3/4+5/6-7/8+9/10+......-9999/10000
こんな感じになりました。
一番悩んだのがどうやってプラスとマイナスを交互にするかで、苦肉の策が+、ーでセットで1つの式に入れました。
うーん。。。やっぱり突貫工事感が抜けないな。
と思っていたら!
数列の範囲にヒントを見つけました!!!
先日書いた全然理解してない数学が流石にまずいので、高校数学から数列をやり直していました。
そうしたら。。。
あれ。。。?この数列。。。プラスとマイナスが交互になってる!!!!
プラスマイナス交互の数列は-1のn乗をかけるだけで作れるんだったんです。
めっちゃ簡単じゃん!これでスッキリ書けそう!
と思いきや、ここで問題。
C言語ってどうやってn乗すんの?ってかできるの?
まぁ、エッセーが立て込んでるのでそれはまた今度ゆっくりやります。
0コメント