Đề 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);
}
}