[int]$sum = 0 Function decompPTBR([int]$num) { $unidade = @("dez","um","dois","três","quatro","cinco","seis","sete","oito","nove") $dez_nove = @("onze","doze","treze","quatorze","quinze","dezesseis","dezessete","dezoito","dezenove") $dezena = @("vinte","trinta","quarenta","cinquenta","sessenta","setenta","oitenta","noventa","cem") $centena = @("cento","duzentos","trezentos","quatrocentos","quinhentos","seiscentos","setecentos","oitocentos","novecentos","mil") If ($num -le 10) { Write-Host $num":" $unidade[$num % 10] Return $unidade[$num % 10].Length } If (($num -gt 10) -and ($num -lt 20)) { Write-Host $num":" $dez_nove[($num % 10)-1] Return $dez_nove[($num % 10)-1].Length } If (($num -ge 20) -and ($num -le 100)) { $u = $num % 10 $d = [Math]::Truncate($num / 10) - 2 If ($u -eq 0) { Write-Host $num":" $dezena[$d] Return $dezena[$d].Length } Else { Write-Host $num":" $dezena[$d] "e" $unidade[$u] Return ($dezena[$d].Length + 1 + $unidade[$u].Length) } } If (($num -gt 100) -and ($num -le 1000)) { $u = $num % 10 $d = [Math]::Truncate(($num / 10) % 10) ## - 2 $c = [Math]::Truncate($num / 100) ## - 1 If (($d*10+$u) -eq 0) { Write-Host $num":" $centena[($c-1)] Return $centena[($c-1)].Length } Else { If (($d*10+$u) -le 10) { Write-Host $num":" $centena[($c-1)] "e" $unidade[$u] Return ($centena[($c-1)].Length + 1 + $unidade[$u].Length) } If ( (($d*10+$u) -gt 10) -and (($d*10+$u) -lt 20) ) { Write-Host $num":" $centena[($c-1)] "e" $dez_nove[($u-1)] Return ($centena[($c-1)].Length + 1 + $dez_nove[($u-1)].Length) } If ((($d*10+$u) -ge 20) -and ($u -eq 0)) { Write-Host $num":" $centena[($c-1)] "e" $dezena[($d-2)] Return ($centena[($c-1)].Length + 1 + $dezena[($d-2)].Length) } If ((($d*10+$u) -ge 20) -and ($u -gt 0)) { Write-Host $num":" $centena[($c-1)] "e" $dezena[($d-2)] "e" $unidade[$u] Return ($centena[($c-1)].Length + 1 + $dezena[($d-2)].Length + 1 + $unidade[$u].Length) } } } } For ([int]$num=1; $num -le 1000; $num++) { $sum += decompPTBR($num) } Write-Host "==========================================" Write-Host "Número de letras dos números de 1 a 1000:" $sum Write-Host "=========================================="
Estamos imprimindo os números por extenso:
1: um 2: dois 3: três 4: quatro 5: cinco 6: seis 7: sete 8: oito 9: nove 10: dez 11: onze 12: doze 13: treze 14: quatorze 15: quinze 16: dezesseis 17: dezessete 18: dezoito 19: dezenove 20: vinte 21: vinte e um 22: vinte e dois 23: vinte e três 24: vinte e quatro
989: novecentos e oitenta e nove 990: novecentos e noventa 991: novecentos e noventa e um 992: novecentos e noventa e dois 993: novecentos e noventa e três 994: novecentos e noventa e quatro 995: novecentos e noventa e cinco 996: novecentos e noventa e seis 997: novecentos e noventa e sete 998: novecentos e noventa e oito 999: novecentos e noventa e nove 1000: mil ========================================== Número de letras dos números de 1 a 1000: 19672 ==========================================
Nenhum comentário:
Postar um comentário