Pair sums (how to avoid duplication?)

1 Ansicht (letzte 30 Tage)
Shiyun Li
Shiyun Li am 23 Apr. 2020
Beantwortet: Deepak Gupta am 23 Apr. 2020
Hi I try to print pairs of number has the sum 12 in the input matrix, but what can I do to aviod duplication? for example if 3 9 is doesn't need to print 9 3. Also what can I do if I always want the small number at the front?
Here is my code
%print every set of number that sum to target value t
clear;clc;
%input an matrix
a=input('Enter a matrix:');
t=12;
%check the size of the matrix
[rows,cols]=size(a);
%loop through
for r=1:rows
for c=1:cols
for i=1:rows
for f=1:cols
if a(r,c)+a(i,f)==t
disp(a(r,c));
disp(a(i,f));
end
end
end
end
end
  3 Kommentare
Shiyun Li
Shiyun Li am 23 Apr. 2020
%print every set of number that sum to target value t
clear;clc;
%input an matrix
a=input('Enter a matrix:');
%check the size of the matrix
[rows,cols]=size(a);
%loop through
for r=1:rows
for c=1:cols
for i=1:rows
for f=1:cols
if a(r,c)+a(i,f)==12
fprintf('%d,%d\n',a(r,c), a(i,f));
end
end
end
end
end
%command window
Enter a matrix:[1 3 5 4 6 2 9 12 7 11 8 0]
1,11
3,9
5,7
4,8
6,6
9,3
12,0
7,5
11,1
8,4
0,12
Shiyun Li
Shiyun Li am 23 Apr. 2020
Here is one of the example, sorry I can explain more clearly. What I want is the pairs of number only print once if 3, 9 is printed then 9,3 will not. And what can I do if I want the smaller number at the front when I print the pair? Thank you.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Deepak Gupta
Deepak Gupta am 23 Apr. 2020
Seems like you have already found the numbers which add up to the required number.
Now Save these numbers in an array with 2 columns. Then swap the column entries if column 1 element is larger than 2nd.
for i = 1:size(A, 1)
if(A(i, 1)>A(i, 2))
temp = A(i, 2);
A(i, 2) = A(i,1);
A(i,1) = temp;
end
end
Now to remove the repititive rows
A=unique(A,'rows')

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by