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

เลขนำโชค


เลขเด็ดคือเลขจำนวนเต็มพิเศษ จากตัวเลขพื้นฐาน ตัวเลขพิเศษบางตัวจะถูกกำจัดโดยตำแหน่ง แทนค่าของพวกเขา สำหรับตำแหน่งของพวกเขา ตัวเลขจะถูกตัดออก เบอร์ที่ไม่ลบคือเลขเด็ด

การลบหมายเลขเป็นไปตามกฎบางอย่าง ตอนแรกเลขทุกวินาทีจะถูกลบ หลังจากนั้น หมายเลขที่ 3 ทั้งหมดจะถูกลบไปเรื่อยๆ

นี่คือตัวอย่างบางส่วน −

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 (1 – 25 all)
1 3 5 7 9 11 13 15 17 19 21 23 25 (deleting all 2nd numbers)
1 3 7 9 13 15 19 21 25 (All 3rd numbers are deleted, starting from 5)
1 3 7 9 13 15 21 25 (All 7th numbers are deleted starting from 19)

อินพุตและเอาต์พุต

อินพุต:ใส่ตัวเลขเพื่อตรวจสอบว่าโชคดีหรือไม่ ให้เลขเป็น 13 ผลลัพธ์:13 เป็นเลขนำโชค

อัลกอริทึม

isLuckyNumber(number)

ป้อนข้อมูล - ตัวเลข

ผลลัพธ์ − ตรวจเลขเด็ดหรือเปล่า

Begin
   counter := 2 (It is static data, not be initialized again in recursion call)
   if counter > n, then
      return 1
   if n mod counter = 0, then
      return 0
   n := n – (n / counter)
   counter := counter + 1
   isLuckyNumber(n)
End

ตัวอย่าง

#include <iostream>
using namespace std;

int counter = 2;    //used during recursion

bool isLuckyNumber(int n) {
   if(counter > n)
      return 1;
   if(n%counter == 0)
      return 0;
   
   n -= n/counter;    //n will be next position for recursion
   counter++;
   return isLuckyNumber(n);
}

int main() {
   int x = 13;

   if(isLuckyNumber(x))
      cout << x<<" is a lucky number.";
   else
      cout << x<<" is not a lucky number.";
}

ผลลัพธ์

13 is a lucky number.