How to resolve the algorithm Roman numerals/Encode step by step in the Phixmonti programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Roman numerals/Encode step by step in the Phixmonti programming language

Table of Contents

Problem Statement

Create a function taking a positive integer as its parameter and returning a string containing the Roman numeral representation of that integer. Modern Roman numerals are written by expressing each digit separately, starting with the left most digit and skipping any digit with a value of zero.

In Roman numerals:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Roman numerals/Encode step by step in the Phixmonti programming language

Source code in the phixmonti programming language

include ..\Utilitys.pmt

def romanEnc   /# n -- s #/
    var number
    "" var res
    ( ( 1000 "M" ) ( 900 "CM" ) ( 500 "D" ) ( 400 "CD" ) ( 100 "C" ) ( 90 "XC" )
      ( 50 "L" ) ( 40 "XL" ) ( 10 "X" ) ( 9 "IX" ) ( 5 "V" ) ( 4 "IV" ) ( 1 "I" ) )
    
    len for
        get 1 get
        number over / int
        number rot mod var number
        swap 2 get rot dup if
            for drop res over chain var res endfor 
        else
            drop
        endif
        drop drop
    endfor
    drop
    res
enddef

1968 romanEnc print

def romanEnc   /# n -- s #/
    var k   
    ( ( 1000 "M" ) ( 900 "CM" ) ( 500 "D" ) ( 400 "CD" ) ( 100 "C" ) ( 90 "XC" )
      ( 50 "L" ) ( 40 "XL" ) ( 10 "X" ) ( 9 "IX" ) ( 5 "V" ) ( 4 "IV" ) ( 1 "I" ) )

    len for
        get 2 get var let 1 get var val drop
        k val >=     
        while
            k val - var k 
            let print
            k val >=
        endwhile
    endfor
    drop nl
enddef

1968 romanEnc

def romanEnc   /# n -- s #/
    >ps
    ( ( 1000 "M" ) ( 900 "CM" ) ( 500 "D" ) ( 400 "CD" ) ( 100 "C" ) ( 90 "XC" )
      ( 50 "L" ) ( 40 "XL" ) ( 10 "X" ) ( 9 "IX" ) ( 5 "V" ) ( 4 "IV" ) ( 1 "I" ) )

    len for
        get 2 get swap 1 get nip
        tps over >=     
        while
            ps> over - >ps 
            over print
            tps over >=
        endwhile
        drop drop
    endfor
    ps> drop drop nl
enddef

1968 romanEnc

  

You may also check:How to resolve the algorithm Character codes step by step in the LiveCode programming language
You may also check:How to resolve the algorithm Reverse words in a string step by step in the Ksh programming language
You may also check:How to resolve the algorithm Nonoblock step by step in the Racket programming language
You may also check:How to resolve the algorithm Sum of a series step by step in the AppleScript programming language
You may also check:How to resolve the algorithm Ackermann function step by step in the COBOL programming language