計算某個方法的執行時間
1 package assemblyLanguage;
2 import java.math.BigInteger;
3 import java.util.Date;
4 import java.util.Scanner;
5
6
7 public class Add {
8
9 /**
10 * @param args
11 * Write a complete 8086 assembly language program to calculate and display the value of the expression:
12 * "1 + (2+2) + 3 + (4+4) + 5 + (6+6) + 7
+ 9 + (10+10) + 11 +
+ N".
13 * Notice the fact that the even numbers are added twice.
14 * N should be input from the keyboard. A LOOP structure is required.
15 * Use a pseudocode or flowchart to sketch your ideas and plan the overall logic
16 * before you write the program.
17
18 static int add(int n)
19 {
20 int result = 0;
21 for(int i = 1; i <= n; i++)
22 {
23 int temp = i;
24 if(temp % 2 == 0)
25 {
26 temp *=2;
27 }
28 result += temp;
29
30 }
31 return result;
32 }
33 */
34 static BigInteger add(BigInteger n) throws Exception
35 {
36 BigInteger result = new BigInteger("0"),
37 TWO = new BigInteger("2");
38 BigInteger temp = null;
39 for(BigInteger i = BigInteger.ONE; i.compareTo(n) <= 0; i=i.add(BigInteger.ONE))
40 {
41 temp = i;
42 if(temp.remainder(TWO).compareTo(BigInteger.ZERO) == 0)
43 {
44 temp=temp.multiply(TWO);
45 // temp=temp.add(temp);
46 }
47 result = result.add(temp);
48
49 }
50 return result;
51 }
52 public static void main(String[] args) throws Exception {
53 // TODO 自動生成方法存根
54
55 Scanner reader = new Scanner(System.in);
56 System.out.print("Please input an integer: ");
57 BigInteger a = reader.nextBigInteger();
58 System.out.print("1+(2+2)+3+(4+4)+5+
+N(N=" + a.toString() + ")= ");
59 Date date1 = new Date();
60 System.out.println(add(a).toString());
61 Date date2 = new Date();
62 long totalTime = date2.getTime() - date1.getTime();
63 System.out.println("用時:"+ totalTime+"ms");
64
65 }
66
67 }
68
2 import java.math.BigInteger;
3 import java.util.Date;
4 import java.util.Scanner;
5
6
7 public class Add {
8
9 /**
10 * @param args
11 * Write a complete 8086 assembly language program to calculate and display the value of the expression:
12 * "1 + (2+2) + 3 + (4+4) + 5 + (6+6) + 7




13 * Notice the fact that the even numbers are added twice.
14 * N should be input from the keyboard. A LOOP structure is required.
15 * Use a pseudocode or flowchart to sketch your ideas and plan the overall logic
16 * before you write the program.
17
18 static int add(int n)
19 {
20 int result = 0;
21 for(int i = 1; i <= n; i++)
22 {
23 int temp = i;
24 if(temp % 2 == 0)
25 {
26 temp *=2;
27 }
28 result += temp;
29
30 }
31 return result;
32 }
33 */
34 static BigInteger add(BigInteger n) throws Exception
35 {
36 BigInteger result = new BigInteger("0"),
37 TWO = new BigInteger("2");
38 BigInteger temp = null;
39 for(BigInteger i = BigInteger.ONE; i.compareTo(n) <= 0; i=i.add(BigInteger.ONE))
40 {
41 temp = i;
42 if(temp.remainder(TWO).compareTo(BigInteger.ZERO) == 0)
43 {
44 temp=temp.multiply(TWO);
45 // temp=temp.add(temp);
46 }
47 result = result.add(temp);
48
49 }
50 return result;
51 }
52 public static void main(String[] args) throws Exception {
53 // TODO 自動生成方法存根
54
55 Scanner reader = new Scanner(System.in);
56 System.out.print("Please input an integer: ");
57 BigInteger a = reader.nextBigInteger();
58 System.out.print("1+(2+2)+3+(4+4)+5+

59 Date date1 = new Date();
60 System.out.println(add(a).toString());
61 Date date2 = new Date();
62 long totalTime = date2.getTime() - date1.getTime();
63 System.out.println("用時:"+ totalTime+"ms");
64
65 }
66
67 }
68