Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Challenges/10 numero menor/go/uriel david #384

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion challenges/0-hello-world/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: O Elon Musk baniu minha conta sem motivo (opcional)
**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixa

Expand Down
2 changes: 1 addition & 1 deletion challenges/1-cubo-simples/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: O Elon Musk baniu minha conta sem motivo (opcional)
**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixa

Expand Down
22 changes: 22 additions & 0 deletions challenges/10-numero-menor/Uriel-David/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Submissão de Exercicio

**Exercicio:** 10 - Número Menor

**Nickname:** Uriel-David (Zinr4x)

**Nível Técnico:** - Senior

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixo/Médio

**Comentários:** GOneles

**Como rodar o desafio**:

Dentro do diretório do projeto, utilize o comando abaixo:
```bash
go run minor.go
```
46 changes: 46 additions & 0 deletions challenges/10-numero-menor/Uriel-David/minor.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package main

import (
"fmt"
"sort"
"strconv"
)

func main() {
for {
var input string
fmt.Print("Digite um número que deseja verificar: ")
fmt.Scanln(&input)

number, err := strconv.Atoi(input)
if err != nil {
fmt.Println()
fmt.Println("Entrada inválida. Por favor, digite um número válido.")
fmt.Println()
}

result := calcMinorNumber(number, number-1)
fmt.Println(result)
fmt.Println()
}
}

func calcMinorNumber(num1, number2 int) int {
str1 := strconv.Itoa(num1)
str2 := strconv.Itoa(number2)

sorted1 := []rune(str1)
sort.Slice(sorted1, func(i, j int) bool { return sorted1[i] < sorted1[j] })
sorted2 := []rune(str2)
sort.Slice(sorted2, func(i, j int) bool { return sorted2[i] < sorted2[j] })

if len(sorted1) > len(sorted2) || number2 < 10 {
return -1
}

if string(sorted1) == string(sorted2) {
return number2
}

return calcMinorNumber(num1, number2-1)
}
2 changes: 1 addition & 1 deletion challenges/2-palindromos/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: O Elon Musk baniu minha conta sem motivo (opcional)
**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixa

Expand Down
2 changes: 1 addition & 1 deletion challenges/3-conversao-de-base/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: O Elon Musk baniu minha conta sem motivo (opcional)
**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixa

Expand Down
22 changes: 22 additions & 0 deletions challenges/4-emprestimo/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Submissão de Exercicio

**Exercicio:** 4 - Empréstimo

**Nickname:** Uriel-David (Zinr4x)

**Nível Técnico:** - Senior

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixa/Medio

**Comentários:** GOneles

**Como rodar o desafio**:

Dentro do diretório do projeto, utilize o comando abaixo:
```bash
go run emprestimo.go
```
74 changes: 74 additions & 0 deletions challenges/4-emprestimo/go/Uriel-David/emprestimo.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package main

import (
"fmt"
"math"
"strconv"
"strings"
)

func main() {
for {
fmt.Println("Calculadora de Empréstimo")
fmt.Print("Digite o valor do empréstimo, taxa de juros em \\% \\e o tempo em anos (Separado por vírgula -> 100, 2, 1): ")
loanValueStr := readInput()

if len(loanValueStr) != 3 {
fmt.Println("Alguns ou todos os valores informados estão em formato inválido, por favor coloque novamente valores válidos.")
voidLine()
continue
}

loanValue, err := strconv.ParseFloat(loanValueStr[0], 64)
if err != nil {
fmt.Println("Valor do empréstimo inválido.")
continue
}

feeTaxs, err := strconv.ParseInt(loanValueStr[1], 10, 64)
if err != nil {
fmt.Println("Valor das taxas em percetagem inválido.")
continue
}

years, err := strconv.ParseInt(loanValueStr[2], 10, 64)
if err != nil {
fmt.Println("Valor do tempo em anos inválido.")
continue
}

finalValue := calcFinalLoanValue(loanValue, feeTaxs, years)
fmt.Printf("Valor final do empréstimo: %.2f\n", finalValue)
voidLine()

var anotherTransaction string
fmt.Print("Deseja realizar outra transação?(S/N): ")
fmt.Scan(&anotherTransaction)
if anotherTransaction == "N" || anotherTransaction == "n" {
break
}

voidLine()
continue
}
}

func readInput() []string {
values := make([]string, 3)
fmt.Scan(&values[0], &values[1], &values[2])
for i, value := range values {
values[i] = strings.Replace(value, ",", "", -1)
}
return values
}

func calcFinalLoanValue(loanValue float64, taxFee int64, years int64) float64 {
taxaDecimal := float64(taxFee) / 100
finalValue := loanValue * math.Pow(1+taxaDecimal, float64(years))

return finalValue
}

func voidLine() {
fmt.Println()
}
22 changes: 22 additions & 0 deletions challenges/5-ordenar-letras/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Submissão de Exercicio

**Exercicio:** 5 - Ordenar Letras

**Nickname:** Uriel-David (Zinr4x)

**Nível Técnico:** - Senior

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixo

**Comentários:** GOneles

**Como rodar o desafio**:

Dentro do diretório do projeto, utilize o comando abaixo:
```bash
go run ordenar.go
```
19 changes: 19 additions & 0 deletions challenges/5-ordenar-letras/go/Uriel-David/ordenar.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package main

import (
"fmt"
"sort"
"strings"
)

func main() {
var word string
fmt.Print("Digite uma palavra: ")
fmt.Scan(&word)

letter := strings.Split(word, "")
sort.Strings(letter)

sortWord := strings.Join(letter, "")
fmt.Println("Palavra ordenada alfabeticamente:", sortWord)
}
22 changes: 22 additions & 0 deletions challenges/6-numeros-primos/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Submissão de Exercicio

**Exercicio:** 6 - Números Primos

**Nickname:** Uriel-David (Zinr4x)

**Nível Técnico:** - Senior

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixo

**Comentários:** GOneles

**Como rodar o desafio**:

Dentro do diretório do projeto, utilize o comando abaixo:
```bash
go run primos.go
```
42 changes: 42 additions & 0 deletions challenges/6-numeros-primos/go/Uriel-David/primos.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package main

import (
"fmt"
"math"
)

func main() {
var number int
fmt.Print("Digite um número para verificar se ele é primo: ")
fmt.Scan(&number)

if isPrime(number) {
fmt.Println(true)
} else {
fmt.Println(false)
}
}

func isPrime(number int) bool {
if number <= 1 {
return false
}

if number <= 3 {
return true
}

if number%2 == 0 || number%3 == 0 {
return false
}

limit := int(math.Sqrt(float64(number)))

for i := 5; i <= limit; i += 6 {
if number%i == 0 || number%(i+2) == 0 {
return false
}
}

return true
}
22 changes: 22 additions & 0 deletions challenges/7-graus-em-horas/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Submissão de Exercicio

**Exercicio:** 7 - Graus em Horas

**Nickname:** Uriel-David (Zinr4x)

**Nível Técnico:** - Senior

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixo

**Comentários:** GOneles

**Como rodar o desafio**:

Dentro do diretório do projeto, utilize o comando abaixo:
```bash
go run graus.go
```
24 changes: 24 additions & 0 deletions challenges/7-graus-em-horas/go/Uriel-David/graus.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package main

import (
"fmt"
)

func main() {
fmt.Print("Digite o ângulo em graus para converter em horas: ")
var angle int
fmt.Scan(&angle)
fmt.Println()

horas, minutos := degreesToHours(angle)
fmt.Printf("O ângulo de %d graus corresponde a este valor abaixo:\n\n", angle)
fmt.Printf("%d:%02d\n", horas, minutos)
}

func degreesToHours(angle int) (int, int) {
degreesPerHour := 360 / 12
hours := angle / degreesPerHour
minutes := (angle % degreesPerHour) * 60 / degreesPerHour

return hours, minutes
}
22 changes: 22 additions & 0 deletions challenges/8-pares-de-letras/go/Uriel-David/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Submissão de Exercicio

**Exercicio:** 8 - Pares de Letras

**Nickname:** Uriel-David (Zinr4x)

**Nível Técnico:** - Senior

**Empresa:** - Comuniverse / Software Engineer -

**Twitter**: https://twitter.com/UriZinrax (@UriZinrax)

**Dificuldade de Resolução:** - Baixo

**Comentários:** GOneles

**Como rodar o desafio**:

Dentro do diretório do projeto, utilize o comando abaixo:
```bash
go run pares.go
```
Loading