counting rows after fprintf

11 vues (au cours des 30 derniers jours)
yonatan friedman
yonatan friedman le 29 Déc 2019
Commenté : yonatan friedman le 31 Déc 2019
function printPythagoras(n)
n = 15;
for i = 3:n
for j = 4:n
for k = 5:n
if i^2 + j^2 == k^2 && i<j && n == fix(n)
fprintf('%d^2 + %d^2 = %d^2\n',i,j,k)
end
end
end
end
---------------
after that , i need to write : 'there are 4 combinations' (the number of the rows)
how to do it?
  1 commentaire
dpb
dpb le 29 Déc 2019
Modifié(e) : dpb le 29 Déc 2019
Add a counter inside the if block, then the appropriate fprintf statement after the all looping is done...

Connectez-vous pour commenter.

Réponses (1)

Adam Danz
Adam Danz le 30 Déc 2019
As dpb advised, you could use a counter.
n = 15;
counter = 0;
for i = 3:n
for j = 4:n
for k = 5:n
if i^2 + j^2 == k^2 && i<j && n == fix(n)
counter = counter+1;
fprintf('%d^2 + %d^2 = %d^2\n',i,j,k)
end
end
end
end
% Show count
fprintf('There are %d combinations.\n', counter)
Or you could store the outputs in a cell array and display them and the count at the end.
n = 15;
out = {};
for i = 3:n
for j = 4:n
for k = 5:n
if i^2 + j^2 == k^2 && i<j && n == fix(n)
out{end+1,1} = sprintf('%d^2 + %d^2 = %d^2',i,j,k);
end
end
end
end
% Display
disp(strjoin(out,'\n'))
% Show count
fprintf('There are %d combinations.\n', numel(out))
  1 commentaire
yonatan friedman
yonatan friedman le 31 Déc 2019
thank you

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by