一樓的,計算結果不正確 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { int result = getResult(30);//從1+2-3-4+5+6-7-8....30 Console.WriteLine("1+2-3-4+5+6-7-8....30 = {0}",result); result = getResult(50);//從1+2-3-4+5+6-7-8....50 Console.WriteLine("1+2-3-4+5+6-7-8....50 = {0}", result); Console.Read(); } private static int getResult(int num) { int times = 0;//計數,每隔兩個就做一次轉換 int sign = 1; //符號變換 通過-1 與 1 來改變 int result = 0; //結果 for (int i = 1; i <= num; i++) { result += sign * i; times++; if (times % 2 == 0) { times = 0; sign = -sign;//如果隔兩個了,就變換符號 } } return result; } } }