C Program to Generate all the Jumping numbers less than or equal to a given number

Write a program to generate all the jumping numbers less than or equal to a given number

Note: A number is called a Jumping Number if all adjacent digits in it differ by 1. The difference between ‘9’ and ‘0’ is not considered as 1.

Example: 1234, 1012, 9898 are jumping numbers

Input Format
Input contains an integer N

Output Format
Print all the jumping numbers separated by space

Constraint
1<=N<=10^4Sample Input 1

30

Sample Output 1

0 1 2 3 4 5 6 7 8 9 10 12 21 23 

Code:

#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>
  
int main()
{
    int x,i,temp,digit;
    bool check;

    scanf("%d",&x);
    for(i=0;i<=x;i++)
    {
        if(i<10)
        {
        printf("%d ",i);
            continue;
        }
        check=1;
        temp=i;
        digit=temp%10;
        temp/=10;
        while(temp)
        {
            if(abs(digit-temp%10)!=1)
            {
                check=0;
                break;
            }
            digit=temp%10;
            temp/=10;
        }
        if(check)
        printf("%d ",i);
    }

    return 0;
}
Code language: C/AL (cal)

Leave a Comment