How to resolve the algorithm Numbers with equal rises and falls step by step in the BASIC programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Numbers with equal rises and falls step by step in the BASIC programming language

Table of Contents

Problem Statement

When a number is written in base 10,   adjacent digits may "rise" or "fall" as the number is read   (usually from left to right).

Given the decimal digits of the number are written as a series   d:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Numbers with equal rises and falls step by step in the BASIC programming language

Source code in the basic programming language

c = 0
i = 1
while c < 10000001
	if eqrf(i) then
		c += 1
		if c <= 200 then print i;" ";
		if c = 10000000 then print : print i
	end if
	i += 1
end while
end

function eqrf(n)
	sn$ = string(n)
	q = 0
	for i = 2 to length(sn$)
		if asc(mid(sn$,i,1)) > asc(mid(sn$,i-1,1)) then
			q += 1
		else
			if asc(mid(sn$,i,1)) < asc(mid(sn$,i-1,1)) then
				q -= 1
			end if
		end if
	next i
	if q = 0 then return true else return false
end function

function eqrf( n as uinteger ) as boolean
    dim as string sn = str(n)
    dim as integer q = 0
    for i as uinteger = 2 to len(sn)
        if asc(mid(sn,i,1)) > asc(mid(sn,i-1,1)) then 
            q += 1 
        elseif asc(mid(sn,i,1)) < asc(mid(sn,i-1,1)) then 
            q -= 1
        end if
    next i
    if q = 0 then return true else return false
end function

dim as uinteger c = 0, i = 1
while c < 10000001
    if eqrf(i) then
        c += 1
        if c <= 200 then print i;" ";
        if c = 10000000 then print : print i
    end if
    i += 1
wend

Public Sub Main()  

  Dim c As Integer = 0, i As Integer = 1 
  While c < 10000001 
    If eqrf(i) Then 
      c += 1 
      If c <= 200 Then Print " "; i;
      If c = 10000000 Then Print Chr(10); i 
    End If 
    i += 1 
  Wend 

End

Function eqrf(n As Integer) As Boolean 

  Dim sn As String = Str(n) 
  Dim q As Integer = 0, i As Integer

  For i = 2 To Len(sn) 
    If Asc(Mid(sn, i, 1)) > Asc(Mid(sn, i - 1, 1)) Then  
      q += 1  
    Else If Asc(Mid(sn, i, 1)) < Asc(Mid(sn, i - 1, 1)) Then  
      q -= 1 
    End If 
  Next 
  If q = 0 Then Return True Else Return False 

End Function


Procedure.b eqrf(n.i)
  sn.s = Str(n) 
  q.i = 0
  
  For i.i = 2 To Len(sn) 
    If Asc(Mid(sn, i, 1)) > Asc(Mid(sn, i - 1, 1)):
      q + 1  
    Else 
      If Asc(Mid(sn, i, 1)) < Asc(Mid(sn, i - 1, 1)):
        q - 1 
      EndIf 
    EndIf
  Next
  If q = 0:
    ProcedureReturn #True 
  Else 
    ProcedureReturn #False 
  EndIf
  
EndProcedure

OpenConsole()
c.i = 0
i.i = 1 
While c < 10000001 
  If eqrf(i):
    c + 1 
    If c <= 200:
      Print(" " + Str(i))
    EndIf
    If c = 10000000:
      PrintN(#CRLF$ + Str(i))
    EndIf
  EndIf 
  i + 1 
Wend 

Input()
CloseConsole()

  

You may also check:How to resolve the algorithm Hello world/Newline omission step by step in the Dc programming language
You may also check:How to resolve the algorithm N'th step by step in the Wren programming language
You may also check:How to resolve the algorithm Kronecker product step by step in the SuperCollider programming language
You may also check:How to resolve the algorithm Roots of unity step by step in the Phix programming language
You may also check:How to resolve the algorithm Comma quibbling step by step in the Astro programming language