Pythagorean triples - wrong output in loop
1 次查看(过去 30 天)
显示 更早的评论
Hello, I have this piece of code, it computes pythagorean triples, then adds them in a matrix, but in output for some reason it adds lines with zeros. How do I change the code to run properly?
And 1 more thing how to make it print sorted by a+b+c column, not by a like now?
UPD. I have solved 1 part of the question with "R = reshape(nonzeros(R), I, 4);
"
function [R, I] = pyth_tri(N)
I = 0;
for a = 3:N/3
for b = a:N/3
for c = b:N
if (a^2 + b^2) == c^2 && a ~= 0 && b ~= 0 && c ~= 0
R(a, :) = [a+b+c, a, b, c]
I = I + 1;
end
end
end
end
end
0 个评论
采纳的回答
the cyclist
2021-11-3
You need
R(I+1, :) = [a+b+c, a, b, c];
rather than
R(a, :) = [a+b+c, a, b, c];
For sorting, after your run your algorithm, run
R = sortrows(R,1)
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!