2017-10-13 10 views
0
function [c] = nextinteger(v) 
c=0; 
a =0; 
h=[0]; 
for i= 1:length(v) 
    if v(i)>0 
     h=v; 
     if h(i+1)>h(i) 
      a = h(i); 
      c=a+1; 
     end 
    end 
end 
end 

Je dois « Écrivez une fonction nextinteger(v) qui prend en entrée un vecteur v et en sortie renvoie le plus petit nombre entier positif qui ne figure pas dans v. » À l'heure actuelle, je n'arrive pas à trouver une solution et le code ci-dessus est aussi loin que je l'ai à la solution. Quelqu'un peut-il me dire ce que je dois examiner et ce que je dois corriger pour se rapprocher de ma solutionComment trouver une valeur minimale sans utiliser min ou plus précisément en fonctions

Exemple de résultat souhaité: Si l'entrée est

[1, 2, 3] 

, la sortie serait

4 

Si l'entrée est

[4, 0, 1, -10], 

la sortie serait

2 
+0

êtes-vous autorisé à utiliser 'find'? – Irreducible

+0

Malheureusement, j'ai utilisé ce type de fonctions, mais je dois trouver un moyen de le faire sans aucun de ces types de fonctions – TheBOI

Répondre

0

Exemple d'entrée

v=[10 0 1 -1 3 4 5]; 

n=length(v); % length of input 
tmp=1:n; % possible integer numbers 
for k=1:n % loop over vector 
    comp_value=v(k); 

    for r=1:length(tmp) %loop over reference 
     if tmp(r)==comp_value %compare 
      tmp(r)=[]; %eclude 
      break 
    end 
    end 
end 

if isempty(tmp) % check whether all numbers are gone 
    result=n+1; 
else 
    result=tmp(1); 
end 

sortie:

result = 

2