Dãy Hailstone đệ quy c++

Đề bài: Xuất ra dãy Hailstone bắt đầu bằng 1 số nguyên dương N nhập từ bàn phím
Dãy Hailstone là dãy bắt đầu bằng 1 số nguyên dương N. Nếu phần tử hiện tại chẵn thì phần tử tiếp theo bằng phần tử hiện tại chia 2. Nếu phần tử hiện tại lẻ thì phần tử tiếp theo bằng phần tử hiện tại nhân 3 cộng 1. Điều kiện dừng của dãy là kết thúc ở số 1.

Mọi người có thể giúp e viết bằng hàm đệ quy được không ạ? Em cảm ơn

#include<iostream>

using namespace std;

int Hailstone(int n);
void xuat(int n);

int main()
{
	int n;
	cin >> n;
	xuat(n);
	cout << "1";
	return 0;
}

int Hailstone(int n)
{
	if (n % 2 == 0)
		return n / 2;
	else
		return n * 3 + 1;
}

void xuat(int n)
{
	while (n > 1)
	{
		cout << n << " ";
		n = Hailstone(n);
	}
}

Viết hộ thì không được rồi. :slight_smile:

Bạn có thể tự viêt theo :point_down:

  1. Xuất số hiện tại
  2. Kiểm tra đã bằng 1 chưa
    2.1. Nếu bằng 1 dừng đệ quy
    2.2. Khác một thì tính giá trị tiếp theo và gọi hàm đệ quy với giá trị vừa tính được.
3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?