用matlab求1到9999中含1数的和!

最好写成函数
是1到9999的所有数中含1的所有数的和~~!
没有对的

第1个回答  2008-07-08
这是最**的做法
a=0;
for i=0:9
for j=0:9
for k=0:9
for l=0:9
if i==1|j==1|k==1|l==1
a=a+1000*i+100*j+10*k+l;
end
end
end
end
end

这是另一种做法
a=1:9999;
a=a(~((mod(a,10)-1)&(mod(floor(a/10),10)-1)&(mod(floor(a/100),10)-1)&(mod(floor(a/1000),10)-1)));
a=sum(a)

这是函数
function s=question(n)
a=1:n;i=1;b=ones(1,n);
while floor(n/i)
b=b&(mod(floor(a/i),10)-1);
i=i*10;
end
s=sum(a(~b));
第2个回答  2008-07-12
A=[];
k=0;
for i=1:9999
if rem(i-1,10)==0
k=k+1;
A(k)=i;
end
end
a=sum(A)

a =

4996000本回答被提问者采纳