作者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