30/09/2018, 19:22

M.n xem hộ mình lỗi gì với ạ..nhập mọi giá trị của n kq luôn là 1

#include<stdio.h> // tinh s=1+ 1/2 + 1/3 +...1/n
#include<iostream>
using namespace std;
float s(int n)
{
	if(n==1)
		return 1;
	else 
		return (1/n)+s(n-1);
}
main()
{
	int n;
	cout<<"Nhap vao n: ";
	cin>>n;
	cout<<"Ket qua la: "<<s(n);
}
Gió viết 21:27 ngày 30/09/2018
return 1.0/n+s(n-1);
Bi-Clever viết 21:28 ngày 30/09/2018

return 1.0/n+s(n-1);

a cho e hỏi là nó # nhau thế nào ạ

Gió viết 21:37 ngày 30/09/2018

1 mặc định là kiểu số nguyên, khi chia 1/n nếu n>1 thì nó sẽ cho kết quả là 0. Nếu là 1.0 thì nó có kiểu là double nên phép chia được tính toán theo kiểu số thực và kết quả sẽ đúng theo biểu thức

Bi-Clever viết 21:30 ngày 30/09/2018

vâng … …

Bài liên quan
0