问:用for语句怎么找出n以内的勾股数。

function num = ggs(n);
num = n;
a = [];
b = [];
c = [];
for i = 1:num
for j = 1:num
for k = 1:num
if i^2+j^2==k^2
a = [a i];
b = [b i];
c = [c k];
end
end
end
end
disp(['勾数有',num2str(a),'b=',num2str(b),'c=',num2str(c)])
gss(10)
a=3 4 6 8b=3 4 6 8c=5 5 10 10
输入数值只能出现这样的答案,我想abc能一起出现比如[a b c] = [3 4 5],请问该怎么改啊?

 采纳的回答

vmmshm
vmmshm 2023-5-21

0 个投票

仅供参考
ggs(10)
function num = ggs(n)
num = n;
m=0;
for i = 1:num
    for j = 1:num
        for k = 1:num
            if i^2+j^2==k^2
                m=m+1;
                tri(m,:)=[i,j,k];
            end
        end
    end
end
disp('勾数有')
disp(tri)
end

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 循环及条件语句 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!