30/09/2018, 23:18

Tính giai thừa không ra, nhờ ae chỉ giúp

Code của mình đây:

float GiaiThua(int n)
{
	int GT = 1;
	for (int i = 1; i <= n; i--)
	{
		GT = (GT * i);
		cout << GT;
	}
	return (float)GT;
}

phiên bản 2:
float GiaiThua(int n)
{
	float GT = 1;
	for (int i = 1; i <= n; i--)
	{
		GT = (GT *(float) i);
		cout << GT;
	}
	return (float)GT;
}

-> kq ra vòng vĩnh cửu toàn số 0.
Mình là lính mới ae chỉ giáo

Khoa Nguyen viết 01:31 ngày 01/10/2018

for (int i = 1; i <= n; i–)

for (int i = 1; i <= n; i++)

Cơ bản thì code ở trên bạn đang cho ra kết quả của phép tính 1 * 0

Văn Minh viết 01:18 ngày 01/10/2018

Vòng for i <= n và i-- thì vô hạn là đúng rồi bạn. i++ nhé bạn

Và mỗi lần in ra GT * i làm gì ? Chạy xong vòng for mới in hoặc return thì tuỳ bạn

N G T N L O C. viết 01:26 ngày 01/10/2018

for (int i = 1; i <= n; i–)

nếu n = i = 1 nhưng nó vẫn i-- thì thành ra quay về *0 phải ko ạ?

Sinner viết 01:20 ngày 01/10/2018

Haha, cảm ơn mn. Tự dưng thấy mình ngu lạ

Sinner viết 01:22 ngày 01/10/2018

Mình in ra để xem lỗi ở chỗ nào thôi bạn

Bài liên quan
0