01/10/2018, 17:36
Sum from 1 to n in c++
#include <iostream>
using namespace std;
int summax(int n){
int sum=1,i=1;
while(i<=n){
i+=1;
sum+=i;
}
cout<<"sum is: "<<sum<<endl;
}
int main(){
int n;
cout<<"enter integer n: ";
cin>>n;
summax(n);
return 0;
}
em code tính tổng từ 1 đến n nhưng khi nhập vào ví dụ số 10 thì đáng lý ra là 55 thì nó ra 65 tức là nó đã tính tổng luôn số 11 . em xin hỏi em đã gì sai , em chạy tay rồi nhưng không hiểu sai chỗ nào
Bài liên quan
em đã tìm ra lỗi rồi :))).
Tìm ra lỗi không phải là để đấy là xong
@drgnz nên close bài này. Nếu tiện thì unlist luôn.
Nhân tiện bạn nên viết cách giải của bạn vào đây, tick solution để những người sau xem biết lỗi gì thì có ngay bài giải ở đó. Chúng ta nên thể hiện lòng tốt vì đây là cộng đồng văn minh :))
Đảo ngược 2 dòng này lại, vì nếu
i = 10
thì vẫn đúng nên sum sẽ cộng thêm 11. Đảo ngược lại sẽ giải quyết được chuyện này. Với cả để luônsum = 0
mình đã tìm ra lỗi là ở dòng while (i<n) mới đúng nhé
Cách đấy cũng được Nhưng Logic không được hay cho lắm
Sai de quy nhe ban
m thấy nên hạn chế dùng đệ quy, dùng đệ quy dễ gây lỗi stack overflow lắm.
Thêm vào đó là việc đệ quy sẽ làm tốc độ của chương trình chậm hơn nhiều.
Để
++i
cuối cùng thì giống nhưfor
vậy => nên để như vậy.while
này nên dùng khifor
không làm được, như trường hợp thân vòng lặp phải chạy ít nhất một lần (for
kiểm tra sau khi khởi tạo/tăng - trước khi lặp)mình newbie bạn ơi :))))
Anh off-topic một chút nhưng bài này có một cách giải đơn giản là dùng toán, học ở cấp 2, là được rồi