[JAVA] [#FizzBuzz] Écrivez dans diverses langues qui "comptent les nombres de 1 à 100 et ne deviennent stupides que lorsque le nombre est un multiple de 3 et le nombre avec 3"

Si je n'écris pas le code régulièrement, je suis tombé sur une situation où je ne peux même pas écrire de code logique simple, alors je prendrai note de ce que j'ai appris lorsque j'ai réétudié, y compris la signification de la rééducation. Je l'ai résumé comme.

0. Description

J'essaierai de mettre en œuvre l'histoire la plus représentative de M. Nabeats (M. Katsura Mitsudo) dans le monde, "Seulement quand le nombre est un multiple de 3 et le nombre avec 3 est stupide" dans diverses langues.

** Wikipédia --Katsura 3e # Histoire principale et gag ** https://ja.wikipedia.org/wiki/桂三度#主な持ちネタ&ギャグ

Je produis simplement des nombres de 1 à 100 avec des sauts de ligne, mais seulement quand le nombre est un multiple de 3 et le nombre a 3, la lettre faciale "٩ (ᐛ) و" est combinée avec ": (deux-points)". Sortie après le nombre.

Image de sortie


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

1. Pour Bash

Vous pouvez utiliser grep pour juger des" nombres avec 3 ", c'est donc étonnamment simple à écrire.

Pour Bash


for i in $(seq 1 100) #Boucle à travers les nombres de 1 à 100
do
  if [ $(($i % 3)) == 0 ] || [ $(echo "$i" | grep "3") ] #Soyez stupide seulement quand c'est un multiple de 3 et un nombre avec 3
  then
    echo "${i} : ٩( ᐛ )و"
  else
    echo "$i"  #Autre que cela, seule sortie numérique
  fi
done

Exécuter dans Wandbox

2. Pour Java

Le jugement du "nombre avec 3" est "String.valueOf (i) .indexOf (" 3 ")! = -1`

Pour Java


import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        //Boucle à travers les nombres de 1 à 100
        for(int i=1; i<=100; i++){
            //Soyez stupide seulement quand c'est un multiple de 3 et un nombre avec 3
            if(i%3 == 0 || String.valueOf(i).indexOf("3") != -1 ){ 
                System.out.println(i + " : ٩( ᐛ )و");
            } else {
                System.out.println(i);
            }
        }
    }
}

Exécuter dans Wandbox

3. Pour Scala

Je pense que vous pouvez écrire de différentes manières, mais j'ai personnellement essayé de l'écrire comme Scala.

Pour Scala


object Main extends App{
    println(1 to 100 map ((n) => { //Générer une carte en utilisant un nombre de 1 à 100 comme clé
        var s = n.toString() //Remplacez la clé convertie en chaîne de caractères comme par la valeur de la carte
        if(n % 3 == 0 || s.contains('3')) {s += " : ٩( ᐛ )و"} //Soyez stupide seulement quand c'est un multiple de 3 et un nombre avec 3
        s
    }) reduceLeft ((s,e) => { s + "\n" + e }) ) //Sortie dans l'ordre tout en cassant la valeur de la carte
}

Exécuter dans Wandbox

4. Pour PowerShell

Je pense que vous pouvez écrire de différentes manières dans le cas de PowerShell, mais j'ai essayé de l'écrire comme une fonction suivant Scala

Pour PowerShell


1..100 | 
    %{
        if (($_ % 3 -eq 0) -or ($_ -match "3")) { echo("$_" + " : ٩( ᐛ )و") }
        else { echo("$_") }
    }

5. Pour Python 3

Je pense que Python est un langage très simple pour écrire ce genre de traitement

Pour 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)

Exécuter dans Wandbox

6. Pour Ruby

Comme Python, Ruby est un langage très facile à écrire.

Pour 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

Exécuter dans Wandbox

7. Pour aller

Je pensais que Golang aurait du mal avec la conversion de type, mais j'ai pu l'écrire simplement de manière inattendue.

Pour aller


package main

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

func main() {
    //Boucle à travers les nombres de 1 à 100
    for i := 1; i <= 100; i++ {
        //Convertir un entier en chaîne
        var s string = strconv.Itoa(i)
        //Soyez stupide seulement quand c'est un multiple de 3 et un nombre avec 3
        if i%3 == 0 || strings.Contains(s, "3") {
            fmt.Println(s + " : ٩( ᐛ )و")
        } else {
            fmt.Println(s)
        }
    }
}

Exécuter dans Wandbox


c'est tout.

Si vous en avez envie, j'essaierai d'autres langues.

Recommended Posts

[#FizzBuzz] Écrivez dans diverses langues qui "comptent les nombres de 1 à 100 et ne deviennent stupides que lorsque le nombre est un multiple de 3 et le nombre avec 3"
10 barrages de dessin avec ● ou ■ qui sont susceptibles d'apparaître dans la formation (Java)