01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class calculate { int cube(int a) { return a * a * a; } double column(int r, int h){ return r * r * 3.14 * h; } double cone(int r, int h){ return r * r * 3.14 * h / 3; } } class volume { public static void main(String args[]){ int x, y, ri; double ent,ens; calculate enzan = new calculate(); x = 5; y = 10; ri = enzan.cube(x); ent = enzan.column(x, y); ens = enzan.cone(x, y); System.out.println("一辺の長さ " + x + "の立方体の体積は"); System.out.println(ri); System.out.println("また、半径 " + x + "高さ " + y + "の円柱の体積は"); System.out.println(ent); System.out.println("さらに、その円錐の体積は"); System.out.println(ens + "\nです。"); } }
% javac volume.java % java volume 一辺の長さ 5の立方体の体積は 125 また、半径 5高さ 10の円柱の体積は 785.0 さらに、その円錐の体積は 261.6666666666667 です。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Keisan{ double cube(int a){ return a * a * 6; } double ball(int r, int h){ return 4 * 3.14 * r * r; } } class surface{ public static void main(String args[]){ int x, y; double ri, ba; Keisan enzan = new Keisan(); x = 5; y = 4; ri = enzan.cube(x); ba = enzan.ball(x, y); System.out.println("一辺の長さ " + x + "の立方体の表面積は"); System.out.println(ri); System.out.println("また、半径 " + x + "高さ " + y + "の球体の表面積は"); System.out.println(ba + "\nです。"); } }
% javac surface.jaca % java surface 一辺の長さ 5の立方体の表面積は 150.0 また、半径 5高さ 4の球体の表面積は 314.0 です。
01
02
03
04
05
06
07
08
09
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
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; //-----------------(a) for (int i = 1; i <= number; i++) { //---------(b) factrial = i * factrial; //-----------------(c) } return(factrial); //--------------------------(d) } /* 再帰による階乗の計算 */ static int factrec(int number) { if (number == 0) return(1); //-----------------(e) return(number*factrec(number - 1)); //---------(f) } }
% javac factrial.java % java factrial input natural number: 6 for文を使った階乗計算 => 6! =720 再帰呼び出しによる階乗計算 => 6! =720
for文による階乗計算
(a)-factrialに1を代入 (b)-numberの数だけ繰り返す (c)-factrialにiの値を掛けた値を代入する (d)-factrialの値を返す
再帰呼び出しによる階乗計算
(e)-numberの値が0のときは1を返す。値が0でなければ(f)を行う (f)-numberとfactrec(number-1)の値を掛けて返す
再帰呼び出しの(f)について、例えばnumber=6の時、
今回は3週間という今までで一番長い期間でしたが、テストも重なり、最終的にぎりぎりまで課題をしていました。
参考文献