利用 do while找出最小值 n 使得 1+2+..+n的總和大於
等於1000
2006-12-13 21:48:42 · 2 個解答 · 發問者 佑佑 5 in 電腦與網際網路 ➔ 程式設計
int sum=0;
int n = 1;
do{
sum += n;
if (sum < 1000) n++;
} while (sum <1000);
2006-12-14 13:29:42 補充:
天才琪琪,你的 code 怎麼看都是 2 ... n , 你不如把 n 的初值設 0 , 反而符合原先的意思,至於 n ; 單獨一個表示式時寫 n; 也是一樣的,它的值並沒有在計算中 assign 給其它人,前置後置都一樣.
因為從 1 開始 , 勢必要先累加再遞增,這樣 n 會多 1 , 因此才多使用一個判斷.
以上
2006-12-18 15:00:31 補充:
...你中毒太深了
應該翻書的是你自己
2006-12-18 15:02:32 補充:
我也不是說一開始 n = 2 而是
sum = 2 + ..... + (n+1);
2006-12-13 22:25:52 · answer #1 · answered by 鳳琳 5 · 0⤊ 0⤋
#include
#include
using namespace std;
int main()
{
int sum=0,n=1;
do
{
n++; //一定要用後置遞增,這樣才會計算到最小的n。
//也因為後至遞增的運算特性,他是在回全結速才會在加1的
sum += n; //計算1加到n的合。
}while(sum<1000); //判斷總和有沒有小於1000
cout<<"n="<
return 0;
}
/*
此範例可以訓練一下,你用遞增的技巧,至於要不要用if來寫
我是覺得可以不需要,因為這樣程式碼會比較簡短。
*/
2006-12-15 18:06:15 補充:
#include
#include
using namespace std;
int main()
{
int sum=0;
int n = 1;
do{
n++; //PS你說這行依開始N會等於2
//建議你翻一下C++的書比較一下 ++n 和 n++ 的不同處。
sum += n;
} while (sum <1000);
cout<<"n="<
system("pause");
return 0;
}
2006-12-14 07:48:43 · answer #2 · answered by 天之淚 3 · 0⤊ 0⤋