首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

求高手点拨两个“解决一个两位数乘法连续进位有关问题”的算法“所得结果不匹配”的有关问题

2013-09-05 
求高手点拨两个“解决一个两位数乘法连续进位问题”的算法“所得结果不匹配”的问题.高手,您好:我是一名学习软

求高手点拨两个“解决一个两位数乘法连续进位问题”的算法“所得结果不匹配”的问题.
高手,您好:
     我是一名学习软件工程的学生,由于近日碰到了一个特大的关系重要的挑战,弟我又接到一位好朋友的“援助申请”,我粗粗看了一下这个问题,是需要占用我一定的时间的...
     弟我的时间..
     确实不够用了...
     希望能够得到高手的相助:
     下面的两个“解决两位数乘法连续进位问题”的Java语言写出的算法,为什么会有“结果不匹配”的现象?
     是什么原因造成的?
     谢谢高手!
     代码如下:
     (算法一)
     package chengfa3;

public class ChengFa {

/**
 * @param args
 */
public static void main(String[] args) {
int sum=0;
for(int i=11;i<=99;i++){
for(int j=i;j<=99;j++){
int a=j/10;
int b=j%10;
int c=i/10;
int d=i%10;
int bd=b*d;
int ad=a*d;
int bc=b*c;
int ac=a*c;
int bw=(ac%10+(ad+bc)/10);
int jw=(bd/10+(ad+bc)%10)/10;
if(bw<10&&(bw+jw)>=10){
System.out.println(""+"\t"+i+"*"+"\t"+j+"="+"\t"+(i*j));
sum++;
if(i*j%1000/100!=0){
System.out.println("错误");
}
}
}
}
System.out.println("sum="+sum);
}

}

    (算法二:)
    package chengfa2;

public class ChengFa {

/**
 * @param args
 */
public static void main(String[] args) {
int sum=0;
for (int a = 0; a < 10; a++) {
for (int b = 0; b < 10; b++) {
for (int c = 0; c < 10; c++) {
for (int d = 0; d < 10; d++) {
int ab=10*a+b;
int cd=10*c+d;
int bd=b*d;
int ad=a*d;
int bc=b*c;
int ac=a*c;
int jw=(bd/10+ad%10+bc%10)/10;
int gw=ac%10+ad/10+bc/10;
int sw=jw+gw;
if(ab>cd){
continue;
}
if(gw<10&&sw>=10){
sum++;
int ji=ab*cd;
System.out.println(""+ab+"*"+cd+"="+(ab*cd));
}
}
}
System.out.println("---------------------");
}
}
        System.out.println("sum="+sum);
}

}
    算法一的计算结果是:
    13*77=1001
13*78=1014
15*67=1005
15*68=1020


15*69=1035
16*63=1008
17*59=1003
18*56=1008
18*57=1026
18*58=1044
18*59=1062
19*53=1007
19*54=1026
23*87=2001
26*39=1014
26*77=2002
26*78=2028
27*38=1026
27*39=1053
27*75=2025
28*36=1008
28*37=1036
29*35=1015
29*36=1044
29*69=2001
34*59=2006
34*89=3026
35*58=2030
35*86=3010
36*56=2016
38*53=2014
38*79=3002
39*77=3003
39*78=3042
45*67=3015
45*89=4005
46*87=4002
47*64=3008
52*77=4004
57*88=5016
58*69=4002
58*87=5046
59*68=4012
59*69=4071
59*85=5015
65*77=5005
66*76=5016
67*75=5025
73*96=7008
87*92=8004
sum=50
    算法二的计算结果是:
    ---------------------
---------------------
---------------------
---------------------
---------------------
---------------------
---------------------
---------------------
---------------------
---------------------
---------------------
11*91=1001
11*92=1012
11*93=1023
11*94=1034
11*95=1045
11*96=1056
11*97=1067
11*98=1078
11*99=1089
---------------------
12*84=1008
12*85=1020
12*86=1032
12*87=1044
12*88=1056
12*89=1068
---------------------
13*77=1001
13*78=1014
13*79=1027
---------------------
14*72=1008
14*73=1022
14*74=1036
14*75=1050
14*76=1064
14*77=1078
14*78=1092
14*79=1106
---------------------
15*67=1005
15*68=1020
15*69=1035
---------------------
16*63=1008
16*64=1024
16*65=1040
16*66=1056
16*67=1072
16*68=1088
16*69=1104
---------------------
17*59=1003
---------------------
18*56=1008
18*57=1026
18*58=1044
18*59=1062
---------------------
19*53=1007
19*54=1026
19*55=1045
19*56=1064
19*57=1083
19*58=1102
19*59=1121
---------------------
---------------------
21*48=1008
21*49=1029
21*96=2016
21*97=2037
21*98=2058
21*99=2079
---------------------
22*46=1012
22*47=1034
22*48=1056
22*49=1078
22*91=2002
22*92=2024
22*93=2046
22*94=2068
---------------------
23*44=1012
23*87=2001
23*88=2024
23*89=2047
---------------------
24*42=1008
24*43=1032
24*44=1056
24*84=2016
---------------------
---------------------
26*39=1014
26*77=2002
26*78=2028
26*79=2054
---------------------
27*38=1026
27*39=1053
27*75=2025
27*76=2052


27*77=2079
27*78=2106
27*79=2133
---------------------
28*36=1008
28*37=1036
28*38=1064
28*39=1092
28*72=2016
28*73=2044
28*74=2072
---------------------
29*35=1015
29*36=1044
29*37=1073
29*38=1102
29*39=1131
29*69=2001
---------------------
---------------------
31*33=1023
31*65=2015
31*66=2046
31*97=3007
31*98=3038
31*99=3069
---------------------
32*32=1024
32*33=1056
32*63=2016
32*94=3008
32*95=3040
32*96=3072
---------------------
33*33=1089
33*61=2013
33*62=2046
33*63=2079
33*91=3003
33*92=3036
33*93=3069
---------------------
34*59=2006
34*89=3026
---------------------
35*58=2030
35*59=2065
35*86=3010
---------------------
36*56=2016
36*84=3024
36*85=3060
36*86=3096
---------------------
37*55=2035
37*56=2072
37*82=3034
37*83=3071
---------------------
38*53=2014
38*79=3002
---------------------
39*52=2028
39*53=2067
39*77=3003
39*78=3042
39*79=3081
---------------------
---------------------
41*49=2009
41*74=3034
41*98=4018
41*99=4059
---------------------
42*48=2016
42*49=2058
42*72=3024
42*96=4032
42*97=4074
---------------------
43*47=2021
43*94=4042
---------------------
44*46=2024
44*47=2068
44*69=3036
44*91=4004
44*92=4048
---------------------
45*67=3015
45*89=4005
---------------------
46*66=3036
46*67=3082
46*87=4002
46*88=4048
46*89=4094
---------------------
47*64=3008
47*86=4042
47*87=4089
---------------------
48*63=3024
48*64=3072
48*84=4032
---------------------
49*62=3038
49*82=4018
---------------------
---------------------
51*59=3009
51*79=4029
51*99=5049
---------------------
52*77=4004
52*97=5044
---------------------
53*57=3021
53*95=5035
---------------------
54*75=4050
54*93=5022
---------------------
55*55=3025
55*73=4015
55*91=5005
---------------------
---------------------
57*71=4047
57*88=5016
57*89=5073
---------------------
58*69=4002
58*87=5046
---------------------
59*68=4012
59*69=4071
59*85=5015
---------------------
---------------------
61*66=4026
61*82=5002
61*83=5063
61*99=6039
---------------------
62*81=5022
62*97=6014
62*98=6076
---------------------
63*64=4032
63*96=6048
---------------------
64*79=5056
64*94=6016
---------------------
65*77=5005
65*78=5070


65*93=6045
---------------------
66*76=5016
66*91=6006
---------------------
67*75=5025
67*76=5092
---------------------
68*74=5032
---------------------
69*73=5037
---------------------
---------------------
71*71=5041
71*85=6035
71*99=7029
---------------------
72*84=6048
72*98=7056
---------------------
73*96=7008
73*97=7081
---------------------
74*95=7030
---------------------
75*94=7050
---------------------
---------------------
77*91=7007
---------------------
---------------------
---------------------
---------------------
81*87=7047
81*99=8019
---------------------
82*86=7052
82*98=8036
---------------------
83*97=8051
---------------------
84*96=8064
---------------------
---------------------
---------------------
87*92=8004
---------------------
88*91=8008
---------------------
---------------------
---------------------
91*99=9009
---------------------
92*98=9016
---------------------
93*97=9021
---------------------
94*96=9024
---------------------
95*95=9025
---------------------
---------------------
---------------------
---------------------
---------------------
sum=227
    我的朋友说:“两个结果的结论个数不一样,有错误,不知道什么原因”...
    但是,我这位朋友说,需求文档还一时找不到...
    弟我粗看一遍,感觉是一个“需要好好地思考一段时间”的算法问题..
    由于时间确实紧迫,弟我想到了CSDN...
    希望CSDN中的高手,能够为弟我,解决这个“不得不拿到CSDN请求高手相助”的问题吧....
    谢谢高手的点拨!!
    一百分奉上!!
    学生敬礼!!
                                                              一位日日夜夜向着梦想奔跑的筑梦者
                                                             2013年8月2日   星期五  晚上21点53分                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

算法 Java 两位数进位
[解决办法]
你都不知道需求是什么,那还谁知道。
[解决办法]
(a*10+b)*(c*10+d)=a*c*100+(a*d+b*c)*10+b*d
首先连续进位的含义是什么?
是最后b*d10位进位导致百位进位还是(a*d+b*c)*10+b*d导致10位和百位进位还是什么其他?
这个不说清楚谁知道你程序问题
 

热点排行