问:用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에서 循环及条件语句에 대해 자세히 알아보기

질문:

2023년 5월 21일

답변:

2023년 5월 21일

Community Treasure Hunt

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

Start Hunting!