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 = 10thì 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 = 0mì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.
Để
++icuối cùng thì giống nhưforvậy => nên để như vậy.whilenày nên dùng khiforkhô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 (forkiể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