QBasic Program to Check if a Number is Palindrome or not

Write a program to check if a number is palindrome or not in QBasic.

For example,

Input
12321
Output
Palindrone

Input
43823
Output
Not Palindrome

What is Palindrome number?

A number is palindrome if it is equal to it’s reverse. For example, reverse of 121 is also 121, this implies 121 is palindrome whereas reverse of 123 is 321, this implies 123 is not palindrome.

Logic

The easiest way to check if a number is a palindrome or not is to first convert the input number to a string and then compare ith character from the start and ith character from the end.

Steps

  1. Let num be the input number.
  2. Set flag = 1
  3. Convert num to string and compare ith character from the start and ith character from last using a loop. If any pair of ith character from the start and ith character from the end are not equal then it means that the number is not a palindrome, set flag = 0.
  4. If the flag is equal to 0 then the input number is not a palindrome. If the flag is not equal to 0 then the input is a palindrome.

QBasic Check if number is Palindrome using for loop

CLS
INPUT "Enter a Number: ", num

'Convert Number to String
num$ = STR$(num)

'flag variable
flag = 1

'Length of input number
n = LEN(num$)

' i: ith number from start
' n-i+1 ith number from last
FOR i = 1 TO n
  IF MID$(num$, i, 1) <> MID$(num$, n - i + 1, 1) THEN
      flag = 0
  END IF
NEXT i

IF flag = 0 THEN
  PRINT "NOT PALINDROME";
ELSE
  PRINT "PALINDROME";
END IF

END

QBasic Check if number is Palindrome using while loop

CLS
INPUT "Enter a Number: ", num

'Convert Number to String
num$ = STR$(num)

'flag variable
flag = 1

'Length of input number
n = LEN(num$)

' i: ith number from start
' n-i+1 ith number from last
i = 1
WHILE i <= n
  IF MID$(num$, i, 1) <> MID$(num$, n - i + 1, 1) THEN
      flag = 0
  END IF
  i = i + 1
WEND

IF flag = 0 THEN
  PRINT "NOT PALINDROME";
ELSE
  PRINT "PALINDROME";
END IF

END

QBasic Check if number is Palindrome using Subroutine

DECLARE SUB IsPalindrome(num)

CLS
INPUT "Enter a Number: ", num
IsPalindrome(num)
END

SUB IsPalindrome(num)

'Convert Number to String
num$ = STR$(num)

'flag variable
flag = 1

'Length of input number
n = LEN(num$)

' i: ith number from start
' n-i+1 ith number from last
i = 1
WHILE i <= n
  IF MID$(num$, i, 1) <> MID$(num$, n - i + 1, 1) THEN
      flag = 0
  END IF
  i = i + 1
WEND

IF flag = 0 THEN
  PRINT "NOT PALINDROME";
ELSE
  PRINT "PALINDROME";
END IF

END SUB

QBasic Check if number is Palindrome using Function

DECLARE FUNCTION IsPalindrome(num)

CLS
INPUT "Enter a Number: ", num
IF IsPalindrome(num) = 1 THEN
  PRINT "PALINDROME";
ELSE
  PRINT "NOT PALINDROME";
END IF
END

FUNCTION IsPalindrome(num)

'Convert Number to String
num$ = STR$(num)

'flag variable
flag = 1

'Length of input number
n = LEN(num$)

' i: ith number from start
' n-i+1 ith number from last
i = 1
WHILE i <= n
  IF MID$(num$, i, 1) <> MID$(num$, n - i + 1, 1) THEN
      flag = 0
  END IF
  i = i + 1
WEND

IsPalindrome = flag

END FUNCTION

Read

Leave a Comment