From ac50279ee48911e5aa22fbc4d45aec9bae648a3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BC=8A=E8=97=A4=20=E5=8B=87=E8=BC=9D?= Date: Fri, 4 Oct 2024 17:14:49 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E5=95=8F=E9=A1=8CB054?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yitou/src/Alphabet.java | 22 ++++++++++++ yitou/src/B054_Addition.java | 57 ++++++++++++++++++++++++++++++ yitou/test/B054_AdditionTest.java | 58 +++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 yitou/src/Alphabet.java create mode 100644 yitou/src/B054_Addition.java create mode 100644 yitou/test/B054_AdditionTest.java diff --git a/yitou/src/Alphabet.java b/yitou/src/Alphabet.java new file mode 100644 index 0000000..d64e221 --- /dev/null +++ b/yitou/src/Alphabet.java @@ -0,0 +1,22 @@ +package src; + +/** + * アルファベットを数値に対応させる列挙型です. + */ +public enum Alphabet { + A(0), + B(1), + C(2), + D(3), + E(4); + + private final int value; + + Alphabet(final int value) { + this.value = value; + } + + public int getValue() { + return value; + } +} diff --git a/yitou/src/B054_Addition.java b/yitou/src/B054_Addition.java new file mode 100644 index 0000000..47b5cdf --- /dev/null +++ b/yitou/src/B054_Addition.java @@ -0,0 +1,57 @@ +package src; + +import java.util.Scanner; + +public class B054_Addition { + + public static void main(final String[] args) { + final Scanner scanner = new Scanner(System.in); + final String alpha1 = scanner.next().toUpperCase(); + final String alpha2 = scanner.next().toUpperCase(); + + // 足し算メソッドを呼び出す + final String result = add(alpha1, alpha2); + System.out.println(result); + + scanner.close(); + } + + // PAIZA表記を足し算する + public static String add(final String alpha1, final String alpha2) { + // PAIZA表記から10進数へ + final int num1 = paizaToDecimal(alpha1); + final int num2 = paizaToDecimal(alpha2); + + // 合計 + final int sum = num1 + num2; + + // 結果をPAIZA表記へ変換 + return decimalToPaiza(sum); + } + + // PAIZA表記から10進数に変換する + private static int paizaToDecimal(final String paiza) { + int decimalValue = 0; + + for (int i = 0; i < paiza.length(); i++) { + final int power = paiza.length() - 1 - i; // 5の階上 + decimalValue += Alphabet.valueOf(String.valueOf(paiza.charAt(i))).getValue() * Math.pow(5, power); + } + return decimalValue; + } + + // 10進数をPAIZA表記に変換する + private static String decimalToPaiza(int decimal) { + if (decimal == 0) { + return "A"; // 0の場合 + } + + final StringBuilder paiza = new StringBuilder(); + while (decimal > 0) { + final int remainder = decimal % 5; + paiza.insert(0, Alphabet.values()[remainder]); // 逆順に挿入 + decimal /= 5; + } + return paiza.toString(); + } +} diff --git a/yitou/test/B054_AdditionTest.java b/yitou/test/B054_AdditionTest.java new file mode 100644 index 0000000..56e6f61 --- /dev/null +++ b/yitou/test/B054_AdditionTest.java @@ -0,0 +1,58 @@ +package test; + +import static org.junit.jupiter.api.Assertions.*; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Test; +import src.B054_Addition; + +public class B054_AdditionTest { + + @Test + public void AとAを入力したときの出力はAになる() { + final List alphaList = new ArrayList<>(); + alphaList.add("A"); + alphaList.add("A"); + + String actual = B054_Addition.add(alphaList.get(0), alphaList.get(1)); + + final String expected = "A"; + assertEquals(expected, actual); + } + + @Test + public void BEBとBCCを入力したときの出力はCCDになる() { + final List alphaList = new ArrayList<>(); + alphaList.add("BAB"); + alphaList.add("BCC"); + + String actual = B054_Addition.add(alphaList.get(0), alphaList.get(1)); + + final String expected = "CCD"; + assertEquals(expected, actual); + } + + @Test + public void BBAAとEBBを入力したときの出力はCABBになる() { + final List alphaList = new ArrayList<>(); + alphaList.add("BBAA"); + alphaList.add("EBB"); + + String actual = B054_Addition.add(alphaList.get(0), alphaList.get(1)); + + final String expected = "CABB"; + assertEquals(expected, actual); + } + + @Test + public void CとCCCCを入力したときの出力はCCCEになる() { + final List alphaList = new ArrayList<>(); + alphaList.add("C"); + alphaList.add("CCCC"); + + String actual = B054_Addition.add(alphaList.get(0), alphaList.get(1)); + + final String expected = "CCCE"; + assertEquals(expected, actual); + } +} -- GitLab From 57b3e40ddc08de784c6289203f426b5237fc831d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BC=8A=E8=97=A4=20=E5=8B=87=E8=BC=9D?= Date: Tue, 8 Oct 2024 10:59:17 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E5=95=8F=E9=A1=8CB054=5F=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yitou/src/.gitignore | 2 + yitou/src/B054_Addition.java | 27 +++---- .../src/{Alphabet.java => PaizaNotation.java} | 4 +- yitou/test/.gitignore | 1 + yitou/test/B054_AdditionTest.java | 78 +++++++------------ 5 files changed, 47 insertions(+), 65 deletions(-) create mode 100644 yitou/src/.gitignore rename yitou/src/{Alphabet.java => PaizaNotation.java} (79%) create mode 100644 yitou/test/.gitignore diff --git a/yitou/src/.gitignore b/yitou/src/.gitignore new file mode 100644 index 0000000..b5bf347 --- /dev/null +++ b/yitou/src/.gitignore @@ -0,0 +1,2 @@ +/B054_Addition.class +/PaizaNotation.class diff --git a/yitou/src/B054_Addition.java b/yitou/src/B054_Addition.java index 47b5cdf..2d5d80c 100644 --- a/yitou/src/B054_Addition.java +++ b/yitou/src/B054_Addition.java @@ -19,38 +19,39 @@ public class B054_Addition { // PAIZA表記を足し算する public static String add(final String alpha1, final String alpha2) { // PAIZA表記から10進数へ - final int num1 = paizaToDecimal(alpha1); - final int num2 = paizaToDecimal(alpha2); + final int num1 = convertPaizaToDecimal(alpha1); + final int num2 = convertPaizaToDecimal(alpha2); // 合計 final int sum = num1 + num2; // 結果をPAIZA表記へ変換 - return decimalToPaiza(sum); + return convertDecimalToPaiza(sum); } // PAIZA表記から10進数に変換する - private static int paizaToDecimal(final String paiza) { + private static int convertPaizaToDecimal(final String paiza) { int decimalValue = 0; for (int i = 0; i < paiza.length(); i++) { - final int power = paiza.length() - 1 - i; // 5の階上 - decimalValue += Alphabet.valueOf(String.valueOf(paiza.charAt(i))).getValue() * Math.pow(5, power); + final int power = paiza.length() - 1 - i; // 5の階乗 + decimalValue += PaizaNotation.valueOf(String.valueOf(paiza.charAt(i))).getValue() * Math.pow(5, power); } return decimalValue; } - // 10進数をPAIZA表記に変換する - private static String decimalToPaiza(int decimal) { + //10進数をPAIZA表記に変換する + private static String convertDecimalToPaiza(final int decimal) { if (decimal == 0) { return "A"; // 0の場合 } - final StringBuilder paiza = new StringBuilder(); - while (decimal > 0) { - final int remainder = decimal % 5; - paiza.insert(0, Alphabet.values()[remainder]); // 逆順に挿入 - decimal /= 5; + int tempDecimal = decimal; // 引数をコピーする + + while (tempDecimal > 0) { + final int remainder = tempDecimal % 5; + paiza.insert(0, PaizaNotation.values()[remainder]); // 逆順に挿入 + tempDecimal /= 5; } return paiza.toString(); } diff --git a/yitou/src/Alphabet.java b/yitou/src/PaizaNotation.java similarity index 79% rename from yitou/src/Alphabet.java rename to yitou/src/PaizaNotation.java index d64e221..c6b18c4 100644 --- a/yitou/src/Alphabet.java +++ b/yitou/src/PaizaNotation.java @@ -3,7 +3,7 @@ package src; /** * アルファベットを数値に対応させる列挙型です. */ -public enum Alphabet { +public enum PaizaNotation { A(0), B(1), C(2), @@ -12,7 +12,7 @@ public enum Alphabet { private final int value; - Alphabet(final int value) { + PaizaNotation(final int value) { this.value = value; } diff --git a/yitou/test/.gitignore b/yitou/test/.gitignore new file mode 100644 index 0000000..7c362cf --- /dev/null +++ b/yitou/test/.gitignore @@ -0,0 +1 @@ +/B054_AdditionTest.class diff --git a/yitou/test/B054_AdditionTest.java b/yitou/test/B054_AdditionTest.java index 56e6f61..d668ba7 100644 --- a/yitou/test/B054_AdditionTest.java +++ b/yitou/test/B054_AdditionTest.java @@ -1,58 +1,36 @@ package test; -import static org.junit.jupiter.api.Assertions.*; -import java.util.ArrayList; -import java.util.List; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; import src.B054_Addition; public class B054_AdditionTest { - @Test - public void AとAを入力したときの出力はAになる() { - final List alphaList = new ArrayList<>(); - alphaList.add("A"); - alphaList.add("A"); - - String actual = B054_Addition.add(alphaList.get(0), alphaList.get(1)); - - final String expected = "A"; - assertEquals(expected, actual); - } - - @Test - public void BEBとBCCを入力したときの出力はCCDになる() { - final List alphaList = new ArrayList<>(); - alphaList.add("BAB"); - alphaList.add("BCC"); - - String actual = B054_Addition.add(alphaList.get(0), alphaList.get(1)); - - final String expected = "CCD"; - assertEquals(expected, actual); - } - - @Test - public void BBAAとEBBを入力したときの出力はCABBになる() { - final List alphaList = new ArrayList<>(); - alphaList.add("BBAA"); - alphaList.add("EBB"); - - String actual = B054_Addition.add(alphaList.get(0), alphaList.get(1)); - - final String expected = "CABB"; - assertEquals(expected, actual); - } - - @Test - public void CとCCCCを入力したときの出力はCCCEになる() { - final List alphaList = new ArrayList<>(); - alphaList.add("C"); - alphaList.add("CCCC"); - - String actual = B054_Addition.add(alphaList.get(0), alphaList.get(1)); - - final String expected = "CCCE"; - assertEquals(expected, actual); - } + @Test + public void AとAを入力したときの出力はAになる() { + String actual = B054_Addition.add("A", "A"); + String expected = "A"; + assertEquals(expected, actual); + } + + @Test + public void BEBとBCCを入力したときの出力はCCDになる() { + String actual = B054_Addition.add("BAB", "BCC"); + String expected = "CCD"; + assertEquals(expected, actual); + } + + @Test + public void BBAAとEBBを入力したときの出力はCABBになる() { + String actual = B054_Addition.add("BBAA", "EBB"); + String expected = "CABB"; + assertEquals(expected, actual); + } + + @Test + public void CとCCCCを入力したときの出力はCCCEになる() { + String actual = B054_Addition.add("C", "CCCC"); + String expected = "CCCE"; + assertEquals(expected, actual); + } } -- GitLab From aeac9c05fde911961411bcce14fef5fd80a92ae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BC=8A=E8=97=A4=20=E5=8B=87=E8=BC=9D?= Date: Tue, 8 Oct 2024 13:55:46 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E5=95=8F=E9=A1=8CB054=E3=81=AE=E4=BF=AE?= =?UTF-8?q?=E6=AD=A32?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yitou/src/.gitignore | 2 -- yitou/test/.gitignore | 1 - yitou/test/B054_AdditionTest.java | 48 +++++++++++++++---------------- 3 files changed, 24 insertions(+), 27 deletions(-) delete mode 100644 yitou/src/.gitignore delete mode 100644 yitou/test/.gitignore diff --git a/yitou/src/.gitignore b/yitou/src/.gitignore deleted file mode 100644 index b5bf347..0000000 --- a/yitou/src/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/B054_Addition.class -/PaizaNotation.class diff --git a/yitou/test/.gitignore b/yitou/test/.gitignore deleted file mode 100644 index 7c362cf..0000000 --- a/yitou/test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/B054_AdditionTest.class diff --git a/yitou/test/B054_AdditionTest.java b/yitou/test/B054_AdditionTest.java index d668ba7..5e0da68 100644 --- a/yitou/test/B054_AdditionTest.java +++ b/yitou/test/B054_AdditionTest.java @@ -6,31 +6,31 @@ import src.B054_Addition; public class B054_AdditionTest { - @Test - public void AとAを入力したときの出力はAになる() { - String actual = B054_Addition.add("A", "A"); - String expected = "A"; - assertEquals(expected, actual); - } + @Test + public void AとAを入力したときの出力はAになる() { + final String actual = B054_Addition.add("A", "A"); + final String expected = "A"; + assertEquals(expected, actual); + } - @Test - public void BEBとBCCを入力したときの出力はCCDになる() { - String actual = B054_Addition.add("BAB", "BCC"); - String expected = "CCD"; - assertEquals(expected, actual); - } + @Test + public void BEBとBCCを入力したときの出力はCCDになる() { + final String actual = B054_Addition.add("BAB", "BCC"); + final String expected = "CCD"; + assertEquals(expected, actual); + } - @Test - public void BBAAとEBBを入力したときの出力はCABBになる() { - String actual = B054_Addition.add("BBAA", "EBB"); - String expected = "CABB"; - assertEquals(expected, actual); - } + @Test + public void BBAAとEBBを入力したときの出力はCABBになる() { + final String actual = B054_Addition.add("BBAA", "EBB"); + final String expected = "CABB"; + assertEquals(expected, actual); + } - @Test - public void CとCCCCを入力したときの出力はCCCEになる() { - String actual = B054_Addition.add("C", "CCCC"); - String expected = "CCCE"; - assertEquals(expected, actual); - } + @Test + public void CとCCCCを入力したときの出力はCCCEになる() { + final String actual = B054_Addition.add("C", "CCCC"); + final String expected = "CCCE"; + assertEquals(expected, actual); + } } -- GitLab