If I don't write the code regularly, I've come across a situation where I can't even write simple logic code, so I'll take a note of what I learned when I re-studied, including the meaning of rehabilitation. I summarized it as.
I will try to implement the most representative story of Mr. Nabeats (Sando Katsura) in the world, "Only when the number is a multiple of 3 and the number with 3 is stupid", in various languages.
** Wikipedia --Sando Katsura # Main story & gag ** https://ja.wikipedia.org/wiki/桂三度#主な持ちネタ&ギャグ
I simply output numbers from 1 to 100 with line breaks, but only when the numbers are multiples of 3 and numbers with 3, the emoticon "٩ (ᐛ) و" is combined with ": (colon)". Output after the number.
Output image
1
2
3 : ٩( ᐛ )و
4
5
6 : ٩( ᐛ )و
7
8
9 : ٩( ᐛ )و
10
11
12 : ٩( ᐛ )و
13 : ٩( ᐛ )و
14
15 : ٩( ᐛ )و
16
17
18 : ٩( ᐛ )و
19
20
21 : ٩( ᐛ )و
22
23 : ٩( ᐛ )و
24 : ٩( ᐛ )و
25
26
27 : ٩( ᐛ )و
28
29
30 : ٩( ᐛ )و
31 : ٩( ᐛ )و
32 : ٩( ᐛ )و
33 : ٩( ᐛ )و
34 : ٩( ᐛ )و
35 : ٩( ᐛ )و
36 : ٩( ᐛ )و
37 : ٩( ᐛ )و
38 : ٩( ᐛ )و
39 : ٩( ᐛ )و
40
41
42 : ٩( ᐛ )و
43 : ٩( ᐛ )و
44
45 : ٩( ᐛ )و
46
47
48 : ٩( ᐛ )و
49
50
51 : ٩( ᐛ )و
52
53 : ٩( ᐛ )و
54 : ٩( ᐛ )و
55
56
57 : ٩( ᐛ )و
58
59
60 : ٩( ᐛ )و
61
62
63 : ٩( ᐛ )و
64
65
66 : ٩( ᐛ )و
67
68
69 : ٩( ᐛ )و
70
71
72 : ٩( ᐛ )و
73 : ٩( ᐛ )و
74
75 : ٩( ᐛ )و
76
77
78 : ٩( ᐛ )و
79
80
81 : ٩( ᐛ )و
82
83 : ٩( ᐛ )و
84 : ٩( ᐛ )و
85
86
87 : ٩( ᐛ )و
88
89
90 : ٩( ᐛ )و
91
92
93 : ٩( ᐛ )و
94
95
96 : ٩( ᐛ )و
97
98
99 : ٩( ᐛ )و
100
You can use grep
to judge" numbers with 3 ", so it's surprisingly simple to write.
For Bash
for i in $(seq 1 100) #Loop through numbers from 1 to 100
do
if [ $(($i % 3)) == 0 ] || [ $(echo "$i" | grep "3") ] #Be stupid only when it is a multiple of 3 and a number with 3
then
echo "${i} : ٩( ᐛ )و"
else
echo "$i" #Other than that, only number output
fi
done
Judgment of "number with 3" is String.valueOf (i) .indexOf ("3 ")! = -1
For Java
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
//Loop through numbers from 1 to 100
for(int i=1; i<=100; i++){
//Be stupid only when it is a multiple of 3 and a number with 3
if(i%3 == 0 || String.valueOf(i).indexOf("3") != -1 ){
System.out.println(i + " : ٩( ᐛ )و");
} else {
System.out.println(i);
}
}
}
}
I think that you can write in various ways, but I personally tried to write it like Scala.
For Scala
object Main extends App{
println(1 to 100 map ((n) => { //Generate a map using numbers from 1 to 100 as keys
var s = n.toString() //Substitute the key converted into a character string as it is for the map value
if(n % 3 == 0 || s.contains('3')) {s += " : ٩( ᐛ )و"} //Be stupid only when it is a multiple of 3 and a number with 3
s
}) reduceLeft ((s,e) => { s + "\n" + e }) ) //Output in order while breaking the map value
}
Run in Wandbox (https://wandbox.org/permlink/WrmO5722LlX7ltYe)
I think that you can write in various ways in the case of PowerShell, but I tried to write it like a function following Scala
For PowerShell
1..100 |
%{
if (($_ % 3 -eq 0) -or ($_ -match "3")) { echo("$_" + " : ٩( ᐛ )و") }
else { echo("$_") }
}
I think Python is a very easy language to write this kind of processing
For Python 3
# coding: utf-8
for num in range(1, 100+1):
if num % 3 == 0 or "3" in str(num):
print("{0} : ٩( ᐛ )و".format(num))
else:
print(num)
Like Python, Ruby is a language in which this kind of processing is very easy to write.
For Ruby
#!/bin/env ruby
for i in 1..100
if i % 3 == 0 || i.to_s =~ /3/
printf( "%d : ٩( ᐛ )و\n", i )
else
printf( "%d\n", i )
end
end
I thought that Golang would have a hard time with type conversion, but I was able to write it unexpectedly simply.
For Go
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
//Loop through numbers from 1 to 100
for i := 1; i <= 100; i++ {
//Convert int to string
var s string = strconv.Itoa(i)
//Be stupid only when it is a multiple of 3 and a number with 3
if i%3 == 0 || strings.Contains(s, "3") {
fmt.Println(s + " : ٩( ᐛ )و")
} else {
fmt.Println(s)
}
}
}
that's all.
If you feel like it, I will try other languages.