第一步:
把被乘数(13)跟乘数的个位数(2)加起来,即有13+2=15;
第二步:
把第一步的答案乘以10,即有15*10=150;
第三步:把被乘数的个位数(3)乘以乘数的个位数(2),即有2*3=6;
第四步:第二步+第三步,即有150+6=156;
总算法:(13+2)*10 +(2*3)=156。
1 public class NewXiao99 {
2
3 /**
4 * @param args
5 */
6 public static void main(String[] args) {
7 long startTime = System.currentTimeMillis();// 获取当前时间
8 for (int i = 0; i <= 1000000; i++) {//算法进行多次循环,方便比较细微时间
9 Suan(9, 9);// 运算都为19*18
10 Suan(9, 8);
11 Suan(9, 7);
12 Suan(9, 6);
13 Suan(9, 5);
14 Suan(9, 4);
15 Suan(9, 3);
16 Suan(9, 2);
17 Suan(9, 1);
18 }
19 long endTime = System.currentTimeMillis();
20 System.out.println("程序运行时间:" + (endTime - startTime) + "ms");
21 }
22
23 public static int Suan(int a, int b) {
24 int first = (10 + a + b) * 10;
25 int second = a * b;
26 int third = first + second;
27 System.out.println(third);
28 return third;
29 }
30
31 }
通过计算机,以人的思维进行运算
通过计算机,以人的思维进行常规运算
1 public class Xiao99 {
2
3 /**
4 * @param args
5 */
6 public static void main(String[] args) {
7 long startTime = System.currentTimeMillis();// 获取当前时间
8 for (int i = 0; i <= 1000000; i++) {
9 Suan(9, 9);// 运算都为19*18
10 Suan(9, 8);
11 Suan(9, 7);
12 Suan(9, 6);
13 Suan(9, 5);
14 Suan(9, 4);
15 Suan(9, 3);
16 Suan(9, 2);
17 Suan(9, 1);
18 }
19 long endTime = System.currentTimeMillis();
20 System.out.println("程序运行时间:" + (endTime - startTime) + "ms");
21 }
22
23 public static int Suan(int a, int b) {
24 int first = (10 + a) * 10;
25 int second = (10 + a) * b;
26 int third = first + second;
27 System.out.println(third);
28 return third;
29 }
30
31 }
虽说运行循环100万次,差距不足一秒,但是快了,就是快了。这就是算法的优化吧,应该。
另外如果以计算机单独直接运算当然更快,但是那样的运算不是以人的思维运算的,人进行运算还是分步进行的。