Lập trình căn bản C: Toán học vui Mưa đá HailStone Number


Đề bài: Bắt đầu bằng 1 số nguyên bất kỳ (khởi tạo), chương trình sẽ sinh ra 1 dãy các số theo quy tắc sau:
 1. Nếu số hiện tại là số chẵn thì lấy nó chia cho 2; ngược lại nếu là số lẻ thì lấy nó nhân với 3 và cộng thêm 1.
 2. Lặp lại

Ví dụ: n=3; 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, ... 

Hmmm.... khi số bằng 1 thì theo công thức mưa đá Hailstone chuỗi số sẽ lặp đi lặp lại 4,2,1,4,2,1,.. 
Đây là 1 vòng lặp vô tận nên khi lập trình ví dụ, tôi sẽ cho vòng lặp dừng khi số n = 1

Link tham khảo: https://www.math.hmc.edu/funfacts/ffiles/10008.5.shtml

Bài giải:


#include <stdio.h>

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


void
muaDa(int n){
int
c = 0;
while
(n>1){
printf("%6d",n);
n = da(n);
c++;
if
(c==6){
printf("\n");
c=0;
}
}

printf("%6d",1);

}

int
main(){
int
n;
printf("Nhap so n :");
scanf("%d",&n);
muaDa(n);
return
0;
}

Xem Video Lap trinh can ban C: Toan hoc vui Mua da HailStone Number

Bài liên quan

Bài liên quan