作者p20162 (好大一隻雞)
看板C_and_CPP
標題[問題] 1+2-3+4-5+6-....+n
時間Sun Sep 27 18:42:14 2009
1+2+3+4...+n我知道如何寫
但是1+2-3+4-5+6-....+n使用whilev寫就遇到麻煩...
老師說要設偶數、奇數,但是想一想還有開頭的1這個數
這該如何解決?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.113.121.97
1F:推 janice001:初始值設1 用POW 09/27 18:45
2F:→ janice001:你老師的意思是 一個++ 一個-- ? 09/27 18:46
3F:推 BSpowerx:把1+3+...+n 減掉 2+4+...+n-1 也行 09/27 18:46
4F:→ pico2k:有另外一種算法... 09/27 18:53
5F:推 VictorTom:開頭很麻煩那就開頭另外加, 從2開始寫不就得了....@_@" 09/27 18:55
6F:→ bc5678:1+(2-3)+(4-5)+(6-7)+... 09/27 19:00
7F:推 epe7571:設1為初值; +2+4+6...為一組; -3-5-7...為一組 09/27 19:04
8F:推 yyc1217:另設一值 k:-1,1,-1,1.. 然後sum加k*i 09/27 20:16
9F:推 VictorTom:老實說我覺得大家想到太多數學方法優化了, 這題目感覺上 09/27 20:18
10F:→ VictorTom:只是要練習迴圈加奇偶數這種基本的判斷而已....@_@" 09/27 20:19
11F:推 dendrobium:真的XD 09/27 20:21
12F:→ softwind:r=1,i=1; while(++i<=n) r+=i*( (i&0x01)?(-1):(1) ); 09/28 00:11
13F:→ bc5678:printf("%d",n%2?-(n/2)+1:n/2+2); 09/28 01:02
14F:→ cutecpu:推樓上,真簡化 09/28 08:03
15F:推 qoozxc789:樓樓上XD 09/28 11:21
16F:推 Ebergies:bc5678 正解 09/28 14:37