Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จะสร้างลำดับหมายเลข Ulam ใน JavaScript ได้อย่างไร


นักคณิตศาสตร์ Ulam เสนอให้สร้างลำดับของตัวเลขจากจำนวนเต็มบวก n (n>0) ใดๆ ดังต่อไปนี้ −

ถ้า n เป็น 1 จะหยุด ถ้า n เป็นเลขคู่ ตัวเลขถัดไปคือ n/2.if n เป็นเลขคี่ ตัวเลขถัดไปคือ 3 * n + 1. ดำเนินการตามขั้นตอนจนกว่าจะถึง 1 

ต่อไปนี้คือตัวอย่างบางส่วนสำหรับจำนวนเต็มสองสามตัวแรก -

2->13->10->5->16->8->4->2->14->2->16->3->10->5->16->8->4->2->17->22->11->34->17->52->26->13->40->20->10->5->16->8->4 ->2->1

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลขและส่งคืนลำดับ Ulam ที่ขึ้นต้นด้วยตัวเลขนั้น

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const num =7;const generateUlam =num => { const res =[num]; if(num &&num ===Math.abs(num) &&isFinite(num)){ ในขณะที่ (num !==1) { if(num % 2){ num =3 * num + 1 }else{ num /=2; }; res.push(จำนวน); }; }อื่น{ คืนค่าเท็จ; }; return res;};console.log(generateUlam(num));console.log(generateUlam(3));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

<ก่อนหน้า>[ 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1][ 3, 10, 5, 16, 8, 4 , 2, 1]