/** * 2013/04/29 Java講座 * おまけ問題解答 * * 問一:引数nに対する三角形の出力(できたら逆三角形も) * 問二:引数nの掛け算表(できたら"|"の位置合わせ) * 問三:階上をfor文なしで実装(1行で実装)←来週の予習?だからわからなくてOK * */ public class Quiz { /** * [問一]三角形の出力 * * @param n */ public static void triangle(int n) { StringBuffer line = new StringBuffer(); for (int i = 0; i < n; ++i) { System.out.println(line.append("◯")); } } /** * [問一]逆三角形の出力 * * @param n */ public static void triangle2(int n) { for (int i = 0; i < n; ++i) { StringBuffer line = new StringBuffer(); for (int j = n - i; j > 0; --j) { line.append("◯"); } System.out.println(line); } } /** * [問二]掛け算表の出力 * * @param n */ public static void masu(int n) { int rank = (int) (Math.log10(n * n) + 1); String format = "%" + rank + "d|"; for (int i = 1; i <= n; ++i) { StringBuffer line = new StringBuffer(); for (int j = 1; j <= n; ++j) { line.append(String.format(format, i * j)); } System.out.println(line); } } /** * [問三]階乗 version if文 * * @param n * @return */ public static int factorial(int n) { if (n == 1) { return n; } return n * factorial(--n); } /** * [問三]階乗 version 3項演算子 * * @param n * @return */ public static int factorial2(int n) { return n == 1 ? n : (n * factorial2(--n)); } }