Skip to main content

Posts

Showing posts with the label Jumping Numbers

Jumping Numbers

Task: Find the all jumping numbers smaller than or equal to given X, Jumping number means a number all adjacent digits differ by 1. Example: Input: 1 50 Output: 0 1 2 3 4 5 6 7 8 9 10 12 21 23 32 34 43 45 Here is the Code: Program in C++: #include<iostream> #include<bits/stdc++.h> using namespace std; void jumpingNumbers(int *jd,int n) {     queue<int> q;     jd[0]=0;     int i;     for(i=1;i<10;i++)     {         jd[i]=i;         q.push(i);     }     int num;     while(q.empty()==false&&i<=n)     {         num=q.front();         int t1=num%10;         if(t1==0)         {             jd[i++]=num*10+t1+1;             q.push(jd[i-1]);         }         else if(t1==9)         {             jd[i++]=num*10+t1-1;             q.push(jd[i-1]);         }         else         {             jd[i++]=num*10+t1-1;             q.push(jd[i-1]);             jd[i++]=num*10+t1+1;             q.push(jd[i-1]);         }         q.pop();     } } int main()  { int t; cin&g