No.15681![]() |
絶対値 投稿者---nana(2004/07/20 11:30:14) |
||
1 3 5 7 5 3 1 と表示するプログラムを作りたいのですが、絶対値を使うということ以外全然分かりません。 ヒントでも構わないので教えて下さい。お願いします。 |
No.15682![]() |
Re:絶対値 投稿者---monkey(2004/07/20 11:44:12) |
||
絶対値を使うということはどうして分かったのですか. 絶対値を使ったときの方法を文章で整理してみてください. そうすると,どういうプログラムにすべきかも見えてくると思います. |
No.15688![]() |
Re:絶対値 投稿者---monkey(2004/07/20 13:22:52) |
||
ヒント:値iの絶対値を|i|で表すならば,与えられた数列は次の計算で求められる. 1 = 7 - |-6| 3 = 7 - |-4| 5 = 7 - |-2| 7 = 7 - | 0| 5 = 7 - |+2| 3 = 7 - |+4| 1 = 7 - |+6| ここで,数列{-6,-4,-2,0,+2,+4,+6}は,公差2の等差数列である. よって,-6≦i≦+6の範囲で,iを2ずつ増やしながら, 7 - |i| の計算をすることにより,{1,3,5,7,5,3,1}が得られる. |
No.15683![]() |
Re:絶対値 投稿者---nop(2004/07/20 12:03:51) |
||
>1 >3 >5 >7 >5 >3 >1 > >と表示するプログラムを作りたいのですが、 どんな方法でも構わないのでしたら puts( "1\n3\n5\n7\n5\n3\n1" ); で表示されます。 |
No.15691![]() |
Re:絶対値 投稿者---かずま(2004/07/20 15:26:19) |
||
絶対値を使わない方法を考えてみました。グラフが 7つの点 (-3,1), (-2,3), (-1,5), (0,7), (1,5), (2,3), (3,1) を通る 6次関数はすぐ作れますよね。 for (i = -3; i <= 3; i++) { n = i * i; printf("%d\n", 7-((n-15)*n+74)*n/30); } |