Here is my solution to the following for credit problem on the Data structure and array course. I am just wondering if this code is considered super inefficient. I feel like a switch can be implemented somehow, but I opted for the logic statements.
Any feedback?
function convertToRoman(num) {
// Declare string to store numerals
let romanNum = ""
// Set variable to temporarily hold a value in a for/while loop set to push an amount of roman numerals to string
let pushNum = 0
// Set variable to pass remaining quantity of the original number through the program to be assigned roman numerals
let passRemainder = num
/* Archtype of the "switch" set up
If statement qualifys the number to enter the brackets of corresponding roman numeral values
pushNum is assigned the truncated value of the number divided by a roman numeral's value
While loop pushes the specified amount of numerals to the romanNum string
passRemainder is set to the number minus the quantity of roman numerals assigned to the romanNum string and passed on to the next qualifying if statement
*/
if(Math.trunc(passRemainder / 1000) > 0){
pushNum = Math.trunc(passRemainder / 1000)
while(pushNum > 0){
romanNum = romanNum + "M"
pushNum--
}
passRemainder %= 1000
}
if(Math.trunc(passRemainder / 900 >0)){
pushNum = Math.trunc(passRemainder / 900)
while(pushNum > 0){
romanNum = romanNum + "CM"
pushNum--
}
passRemainder %= 900
}
if(Math.trunc(passRemainder / 500 > 0)){
pushNum = Math.trunc(passRemainder / 500)
while(pushNum > 0){
romanNum = romanNum + "D"
pushNum--
}
passRemainder %= 500
}
if(Math.trunc(passRemainder / 400 > 0)){
pushNum = Math.trunc(passRemainder / 400)
while(pushNum > 0){
romanNum = romanNum + "CD"
pushNum--
}
passRemainder %= 400
}
if(Math.trunc(passRemainder / 100 > 0)){
pushNum = Math.trunc(passRemainder / 100)
while(pushNum > 0){
romanNum = romanNum + "C"
pushNum--
}
passRemainder %= 100
}
if(Math.trunc(passRemainder / 90 > 0)){
pushNum = Math.trunc(passRemainder / 90)
while(pushNum > 0){
romanNum = romanNum + "XC"
pushNum--
}
passRemainder %= 90
}
if(Math.trunc(passRemainder / 50 > 0)){
pushNum = Math.trunc(passRemainder / 50)
while(pushNum > 0){
romanNum = romanNum + "L"
pushNum--
}
passRemainder %= 50
}
if(Math.trunc(passRemainder / 40 > 0)){
pushNum = Math.trunc(passRemainder / 40)
while(pushNum > 0){
romanNum = romanNum + "XL"
pushNum--
}
passRemainder %= 40
}
if(Math.trunc(passRemainder / 10 > 0)){
pushNum = Math.trunc(passRemainder / 10)
while(pushNum > 0){
romanNum = romanNum + "X"
pushNum--
}
passRemainder %= 10
}
if(Math.trunc(passRemainder / 9 > 0)){
pushNum = Math.trunc(passRemainder / 9)
while(pushNum > 0){
romanNum = romanNum + "IX"
pushNum--
}
passRemainder %= 9
}
if(Math.trunc(passRemainder / 5 > 0)){
pushNum = Math.trunc(passRemainder /5)
while(pushNum > 0){
romanNum = romanNum + "V"
pushNum--
}
passRemainder %= 5
}
if(Math.trunc(passRemainder / 4 > 0)){
pushNum = Math.trunc(passRemainder /4)
while(pushNum > 0){
romanNum = romanNum + "IV"
pushNum--
}
passRemainder %= 4
}
if(Math.trunc(passRemainder / 1 > 0)){
pushNum = Math.trunc(passRemainder /1)
while(pushNum > 0){
romanNum = romanNum + "I"
pushNum--
}
}
return romanNum;
}