Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
81
Task/Number-names/BlitzMax/number-names.blitz
Normal file
81
Task/Number-names/BlitzMax/number-names.blitz
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
SuperStrict
|
||||
|
||||
Framework BRL.StandardIO
|
||||
|
||||
spellIt( 99)
|
||||
spellIt( 300)
|
||||
spellIt( 310)
|
||||
spellIt( 1501)
|
||||
spellIt( 12609)
|
||||
spellIt( 512609)
|
||||
spellIt( 43112609)
|
||||
spellIt(1234567890)
|
||||
|
||||
|
||||
Type TSpell
|
||||
|
||||
Field smallNumbers:String[] = ["zero", "one", "two", "three", "four", "five", ..
|
||||
"six", "seven", "eight", "nine", "ten", ..
|
||||
"eleven", "twelve", "thirteen", "fourteen", "fifteen", ..
|
||||
"sixteen", "seventeen", "eighteen", "nineteen" ]
|
||||
|
||||
Field decades:String[] = [ "", "", "twenty", "thirty", "forty", ..
|
||||
"fifty", "sixty", "seventy", "eighty", "ninety" ]
|
||||
|
||||
Field thousandPowers:String[] = [ " billion", " million", " thousand", "" ]
|
||||
|
||||
Method spellHundreds:String(number:Int)
|
||||
Local result:String
|
||||
If number > 99 Then
|
||||
result = smallNumbers[number / 100]
|
||||
result :+ " hundred"
|
||||
number = number Mod 100
|
||||
If number Then
|
||||
result :+ " and "
|
||||
End If
|
||||
End If
|
||||
|
||||
If number >= 20 Then
|
||||
result :+ decades[number / 10]
|
||||
number = number Mod 10
|
||||
If number Then
|
||||
result :+ "-"
|
||||
End If
|
||||
End If
|
||||
If number > 0 And number < 20 Then
|
||||
result :+ smallNumbers[number]
|
||||
End If
|
||||
|
||||
Return result
|
||||
End Method
|
||||
|
||||
Method spell:String(number:Long)
|
||||
If number < 20 Then
|
||||
Return smallNumbers[number]
|
||||
End If
|
||||
Local result:String
|
||||
|
||||
Local scaleIndex:Int = 0
|
||||
Local scaleFactor:Long = 1000000000:Long ' 1 billion
|
||||
While scaleFactor > 0
|
||||
If number >= scaleFactor
|
||||
Local h:Long = number / scaleFactor
|
||||
result :+ spellHundreds(h) + thousandPowers[scaleIndex]
|
||||
number = number Mod scaleFactor
|
||||
If number Then
|
||||
result :+ ", "
|
||||
End If
|
||||
End If
|
||||
scaleFactor :/ 1000
|
||||
scaleIndex :+ 1
|
||||
Wend
|
||||
|
||||
Return result
|
||||
End Method
|
||||
|
||||
End Type
|
||||
|
||||
Function spellIt(number:Long)
|
||||
Local numberSpell:TSpell = New TSpell
|
||||
Print number + " " + numberSpell.spell(number)
|
||||
End Function
|
||||
Loading…
Add table
Add a link
Reference in a new issue