Lucky and even lucky numbers: Difference between revisions
→{{header|Go}}: More idiomatic error handling.
(Added Go) |
(→{{header|Go}}: More idiomatic error handling.) |
||
Line 202:
import (
"fmt"
"log"
"os"
"strconv"
Line 241 ⟶ 242:
}
func printSingle(j int, odd bool) error {
if odd {
if j >= len(luckyOdd) {
}
fmt.Println("Lucky number", j, "=", luckyOdd[j-1])
} else {
if j >= len(luckyEven) {
}
fmt.Println("Lucky even number", j, "=", luckyEven[j-1])
}
return nil
}
func printRange(j, k int, odd bool) error {
if odd {
if k >= len(luckyOdd) {
}
fmt.Println("Lucky numbers", j, "to", k, "are:")
Line 264 ⟶ 266:
} else {
if k >= len(luckyEven) {
}
fmt.Println("Lucky even numbers", j, "to", k, "are:")
fmt.Println(luckyEven[j-1 : k])
}
return nil
}
func printBetween(j, k int, odd bool) error {
var r []int
if odd {
max := luckyOdd[len(luckyOdd)-1]
if j > max || k > max {
}
for _, num := range luckyOdd {
Line 292 ⟶ 295:
max := luckyEven[len(luckyEven)-1]
if j > max || k > max {
}
for _, num := range luckyEven {
Line 306 ⟶ 309:
fmt.Println(r)
}
return nil
}
Line 311 ⟶ 315:
nargs := len(os.Args)
if nargs < 2 || nargs > 4 {
}
filterLuckyOdd()
Line 317 ⟶ 321:
j, err := strconv.Atoi(os.Args[1])
if err != nil || j < 1 {
}
if nargs == 2 {
if err := printSingle(j, true); err != nil {
}
return
}
Line 327 ⟶ 333:
k, err := strconv.Atoi(os.Args[2])
if err != nil {
}
if k >= 0 {
if j > k {
}
log.Fatal(err)
}
▲ printRange(j, k, true)
} else {
l := -k
if j > l {
}
if err := printBetween(j, l, true); err != nil {▼
log.Fatal(err)
}
▲ printBetween(j, l, true)
}
return
Line 351 ⟶ 361:
odd = false
default:
}
if os.Args[2] == "," {
if err := printSingle(j, odd); err != nil {
log.Fatal(err)
}
return
}
Line 360 ⟶ 372:
k, err := strconv.Atoi(os.Args[2])
if err != nil {
}
if k >= 0 {
if j > k {
}
if err := printRange(j, k, odd); err != nil {
log.Fatal(err)
}
▲ printRange(j, k, odd)
} else {
l := -k
if j > l {
}
if err := printBetween(j, l, odd); err != nil {▼
log.Fatal(err)
}
▲ printBetween(j, l, odd)
}
}</lang>
|