#11900: 新手求抓錯


fdhs10635401 (于)

學校 : 桃園市私立復旦高級中學
編號 : 60439
來源 : [1.200.71.45]
最後登入時間 :
2020-11-18 23:18:11
a215. 明明愛數數 | From: [36.228.62.251] | 發表日期 : 2017-04-15 23:56

#include<iostream>
using namespace std;
int main()
{
     int n,m;
     while(cin>>n>>m)
     {
          int add=0,a=0;
          for(int b=n;a++;add<m)
          {
               b+=a;
               add+=b;
          }
          cout<<a<<endl;
     }
}

新手來求解 為什麼結果都是1? 我覺得我邏輯沒問題啊?

 
#11901: Re:新手求抓錯


icube (!@#$%^&*()_+)

學校 : 不指定學校
編號 : 61090
來源 : [220.135.116.184]
最後登入時間 :
2024-08-24 18:11:03
a215. 明明愛數數 | From: [220.135.116.184] | 發表日期 : 2017-04-16 07:54

#include
using namespace std;
int main()
{
     int n,m;
     while(cin>>n>>m)
     {
          int add=0,a=0;
          for(int b=n;a++;add<m)
          {
               b+=a;
               add+=b;
          }
          cout<<a<<endl;
     }
}

新手來求解 為什麼結果都是1? 我覺得我邏輯沒問題啊?

for的語法是 for (初始敘述; 條件敘述; 迴圈敘述)

可以改寫成

 

初始敘述;

while (條件敘述) {

    ...

    迴圈敘述

}

你的條件敘述和迴圈敘述放反了

剩下的問題自己找看看

1 3 應該輸出 3

1 -1 應該輸出 1(不數時總和=0>-1,但至少要數一個)

1 55 應該輸出 11

 
#11932: Re:新手求抓錯


nkavengertree (LaG)

學校 : 不指定學校
編號 : 62501
來源 : [49.216.191.28]
最後登入時間 :
2021-11-21 03:06:49
a215. 明明愛數數 | From: [163.30.20.150] | 發表日期 : 2017-04-20 13:50

#include
using namespace std;
int main()
{
     int n,m;
     while(cin>>n>>m)
     {
          int add=0,a=0;
          for(int b=n;a++;add<m)
          {
               b+=a;
               add+=b;
          }
          cout<<a<<endl;
     }
}

新手來求解 為什麼結果都是1? 我覺得我邏輯沒問題啊?

--------------------------------------------------------------

你的變數定義是:
n : 起始數字
m : 最終總和的限制
a : 計算次數
add : 總合計算
 
第一個問題: for 迴圈的語法錯誤
應改成
for (int b=n; add<m; a++)
 
 
第二個問題: 沒有經過每一個數字
舉例:n=1, m=10
 
Loop1 : b=n=1
             b+=0       =>   b=1
             add+=b   =>   add=b=1
Loop2:  b+=1      =>    b=2
             add+=b   =>   add=1+1=2
Loop3:  b+=2       =>   b=4          *此時發現b跳過3這個數字
 
應該是這兩個問題吧
給你參考
 
 
 




 
ZeroJudge Forum