Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Bài . Phỏng đoán Collatz (Collatz Conjecture): lấy một số nguyên dương bất kì, nếu số đó là số chẵn thì bạn lấy số đó chia 2, nếu số đó là số lẻ thì bạn lấy số đó nhân 3 rồi cộng 1. Sau một số lần thực hiện bạn sẽ nhận được giá trị bằng 1. Viết chương trình nhập vào số n in ra dãy số theo phỏng đoán Collatz và tính độ dài của dãy số. Nếu giá trị số n truyền vào là số âm thì lấy trị tuyệt đối của n. Ví dụ: 20 Ta được dãy số: 20 10 5 16 8 4 2 1, độ dài bằng 8. Khai báo hàm: int dayCollatz (số n). Hàm trả về độ dài của dãy đồng thời in dãy số. Số n: là số nguyên. b. Trong hàm main, cho phép người dùng nhập vào n và in ra dãy Collatz và độ dài của dãy. 2.
Kết quả hiển thị Kết quả hiển thị theo bố cục sau:
Mời bạn nhập số n: 20
Dãy Collatz : 20 10 5 16 8 4 2 1
Độ dài của dãy là 8.
Mọi người giúp em bài này với ạ.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Input Number n: ', n => {
var tmp = n;
var array = [];
array.push(n);
do{
if(tmp%2==0){
// console.log(`Even: ${tmp/2}`);
array.push(tmp/2);
tmp = tmp/2;
}
else{
// console.log(`Odd: ${tmp*3+1}`);
array.push(tmp*3+1);
tmp = tmp*3+1;
}
} while (tmp != 1) ;
console.log(`Output Collatz: ${array}`);
console.log(`Output Lenght Collatz: ${array.length}`);
readline.close();
});