import java.io.*; public class rep3-1 { public static void main(String[] args) throws IOException { System.out.println("これから体積を求めます") System.out.println("順番は直方体→球→三角推の順で聞きます"); System,out,println("#######################"); System.out.println("では直方体から"); System.out.print("縦の長さは?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int tate = Integer.parseInt(str); System.out.print("横の長さは?"); BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in)); String str2 = br2.readLine(); int yoko = Integer.parseInt(str2); System.out.print("高さは? ーーー→"); BufferedReader br3 = new BufferedReader(new InputStreamReader(System.in)); String str3 = br3.readLine(); int takasa = Integer.parseInt(str3); int taiseki = tate*yoko*takasa; System.out.println("直方体の体積は・・・・・"+taiseki+" です。"); System,out,println("#######################"); System.out.println("次に球求めます。 まず球の・・・"); System.out.print("半径は? "); BufferedReader br4 = new BufferedReader(new InputStreamReader(System.in)); String str4 = br4.readLine(); int hankei = Integer.parseInt(st4); float taiseki2= 3/4*3.14*hankei*hankei; System.out.println("球体の体積は・・・・・"+taiseki2+"です。"); System,out,println("#######################"); System.out.println("最後に三角錐の・・・"); System.out.print("底面の三角形の高さは?"); BufferedReader br5 = new BufferedReader(new InputStreamReader(System.in)); String str5 = br5.readLine(); int takasa2 = Integer.parseInt(str5); System.out.print("底面の三角形の底辺は?"); BufferedReader br6 = new BufferedReader(new InputStreamReader(System.in)); String str6 = br6.readLine(); int teihen = Integer.parseInt(str6); System.out.print("三角錐の高さは?"); BufferedReader br7 = new BufferedReader(new InputStreamReader(System.in)); String str7 = br7.readLine(); int takasa3 = Integer.parseInt(str7); int taiseki3 = ((teihen*takasa2)/2*takasa3)/3; System.out.println("円錐の体積は"+taiseki3+" です。"); System.out.println("これで体積のプログラムは終了します。"); System.out.println("次は表面積を求めるプログラムです"); } }
import java.io.*; public class rep3-2 { public static void main(String[] args) throws IOException { System.out.println("今から表面積を出します"); System.out.println("出る"); System.out.println("直方体の・・・"); System.out.print("縦の長さは?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int tate = Integer.parseInt(str); System.out.print("横の長さは?"); BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in)); String str2 = br2.readLine(); int yoko = Integer.parseInt(str2); System.out.print("高さは?"); BufferedReader br3 = new BufferedReader(new InputStreamReader(System.in)); String str3 = br3.readLine(); int takasa = Integer.parseInt(str3); int hyoumenseki = (tate*yoko+tate*takasa+yoko*takasa)*2; System.out.println("直方体の表面積は"+hyoumenseki+" です。"); System.out.println("球の・・・"); System.out.print("半径は? "); BufferedReader br4 = new BufferedReader(new InputStreamReader(System.in)); String str4 = br4.readLine(); int hankei = Integer.parseInt(str4); int hyoumenseki2 = hankei*hankei*4*3; System.out.println("球体の表面積は"+hyoumenseki2+" です。"); System.out.println("ただし、円周率は3.14として計算しています。"); System.out.println("#################################"); System.out.println("表面積のプログラムは終了します。"); } }
import java.io.*; class factrial { public static void main(String args[]) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("input natural number: "); int num = (new Integer(in.readLine())).intValue(); System.out.print("for文を使った階乗計算 => "); System.out.println(num + "! =" + factfor(num)); System.out.print("再帰呼び出しによる階乗計算 => "); System.out.println(num + "! =" + factrec(num)); } /* for 文を使った階乗の計算 */ static int factfor(int number) { int factrial = 1; for (int i = 1; i <= number; i++) { factrial = i * factrial; } return(factrial); } /* 再帰による階乗の計算 */ static int factrec(int number) { if (number == 0) return(1); return(number * factrec(number-1)); } }
再帰のプログラムを見ると、factrec(n) の値を求めるメソッド定義でfactrec(number - 1) と自分自身を使っている。 factorial(n - 1) の値を求めるには factorial(n - 2) が必要で、またそれを求めるには factorial(n - 3) が必要に・・・・・ しかし、factorial(0) の値が与えられているために、この過程を逆にさかのぼって必要な値が求まるという仕組みになっている。 プログラム(メソッドの定義)の中で、自分自身を呼び出す構造が再帰プログラム for 文では、int 型の変数の値(factrial)とfor文のカウンターの値(i)を乗算したものを変数(factrial)に代入する、