问题描述:
matlab算法求优化
for i=10000:1:99999
for j=10000:1:99999
a=fix(i/10000);
b=mod(fix(i/1000),10);
c=mod(fix(i/100),10);
d=mod(fix(i/10),10);
e=mod(i,10);%a b c d e分别代表i的万千百十个位数字
f=fix(j/10000);
g=mod(fix(j/1000),10);
h=mod(fix(j/100),10);
k=mod(fix(j/10),10);
l=mod(j,10);%f g h k l分别代表j的万千百十个位数字
z=i*j;
m=fix(z/1000000000);
n=mod(fix(z/100000000),10);
o=mod(fix(z/10000000),10);
p=mod(fix(z/1000000),10);
q=mod(fix(z/100000),10);
r=mod(fix(z/10000),10);
s=mod(fix(z/1000),10);
t=mod(fix(z/100),10);
u=mod(fix(z/10),10);
v=mod(z,10);%mnopqrstuv分别表示十位数z各个数位的数字,依次是从十亿位到个位
A=[a b c d e f g h k l];
A1=unique(A);
len1=length(A1(:));
B=[m n o p q r s t u v];
B1=unique(B);
len2=length(B1(:));
if len1==10&&len2==10&&z>1000000000
disp(i);
disp(j);
disp(z);
else
continue
end
end
end
我学matlab没多久 这是我写的程序 题目是一个五位数A乘以一个五位数B得到一个十位数Z,A和B各个数位的数字构成一维矩阵是由0到9共十个数字组成,Z各个数位的数字也是一个从0到9的十个数字的一维矩阵.求出这个等式A*B=Z
程序我是上面那样写的 计算机反应不出来 而且也没报错 我在想是不是要优化下 求大神指导如何优化
for i=10000:1:99999
for j=10000:1:99999
a=fix(i/10000);
b=mod(fix(i/1000),10);
c=mod(fix(i/100),10);
d=mod(fix(i/10),10);
e=mod(i,10);%a b c d e分别代表i的万千百十个位数字
f=fix(j/10000);
g=mod(fix(j/1000),10);
h=mod(fix(j/100),10);
k=mod(fix(j/10),10);
l=mod(j,10);%f g h k l分别代表j的万千百十个位数字
z=i*j;
m=fix(z/1000000000);
n=mod(fix(z/100000000),10);
o=mod(fix(z/10000000),10);
p=mod(fix(z/1000000),10);
q=mod(fix(z/100000),10);
r=mod(fix(z/10000),10);
s=mod(fix(z/1000),10);
t=mod(fix(z/100),10);
u=mod(fix(z/10),10);
v=mod(z,10);%mnopqrstuv分别表示十位数z各个数位的数字,依次是从十亿位到个位
A=[a b c d e f g h k l];
A1=unique(A);
len1=length(A1(:));
B=[m n o p q r s t u v];
B1=unique(B);
len2=length(B1(:));
if len1==10&&len2==10&&z>1000000000
disp(i);
disp(j);
disp(z);
else
continue
end
end
end
我学matlab没多久 这是我写的程序 题目是一个五位数A乘以一个五位数B得到一个十位数Z,A和B各个数位的数字构成一维矩阵是由0到9共十个数字组成,Z各个数位的数字也是一个从0到9的十个数字的一维矩阵.求出这个等式A*B=Z
程序我是上面那样写的 计算机反应不出来 而且也没报错 我在想是不是要优化下 求大神指导如何优化
问题解答:
我来补答展开全文阅读