recursividad
tengo que realizar un programa que me compruebe si un valor x es igual a la suma de las componentes de un vector a[1..n] con n>0 de forma recursiva. ¿Como se hace?
Creo que lo que usted necesita es algo como esto. Pruébelo a ver si "la pegué" :-).
Function SumaVector(vector() as long, byval final as long) as long
dim inicio as long
inicio = lbound(vector)
if (inicio = final) then
SumaVector = vector(inicio)
else
SumaVector = vector(final) + SumaVector(vector, final - 1)
end if
end function
Sub Main()
dim valor as string
dim vecValores() as long
Redim vecValores(1 to 10)
'Poner código aquí para llenado del vector
....
valor=inputbox("Digite el valor a comparar.");
if (valor = "")then
exit sub
endif
if not(isnumeric(valor))then
msgbox "El valor digitado no es reconocido como un número.", vbexclamation
exit sub
endif
if (SumaVector(vecValores, ubound(vecvalores)) = clng(valor)) then
msgbox "La suma del vector y el valor digitado concuerdan.", vbinformation
else
msgbox "La suma del vector y el valor digitado no concuerdan.", vbcritical
end if
end sub
Function SumaVector(vector() as long, byval final as long) as long
dim inicio as long
inicio = lbound(vector)
if (inicio = final) then
SumaVector = vector(inicio)
else
SumaVector = vector(final) + SumaVector(vector, final - 1)
end if
end function
Sub Main()
dim valor as string
dim vecValores() as long
Redim vecValores(1 to 10)
'Poner código aquí para llenado del vector
....
valor=inputbox("Digite el valor a comparar.");
if (valor = "")then
exit sub
endif
if not(isnumeric(valor))then
msgbox "El valor digitado no es reconocido como un número.", vbexclamation
exit sub
endif
if (SumaVector(vecValores, ubound(vecvalores)) = clng(valor)) then
msgbox "La suma del vector y el valor digitado concuerdan.", vbinformation
else
msgbox "La suma del vector y el valor digitado no concuerdan.", vbcritical
end if
end sub
Disculpe, pensé que estaba en el foro de Visual Basic. :(
En un momento le propongo el código... no soy tan diestro en C++ como en VB.
En un momento le propongo el código... no soy tan diestro en C++ como en VB.
A ver si ahora sí. Tal vez algo como esto?
#include <iostream.h>
int SumarVector(int vector[], int final)
{
if (0 == final)
{
return vector[0];
}
else
{
return (vector[final] + SumarVector(vector, final - 1));
}
}
int main(int argc, char* argv[])
{
int vecValores[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int iValor = 0;
cout << "Digite un número: ";
cin >> iValor;
if (SumarVector(vecValores, 10) == iValor)
{
cout << "El valor digitado concuerda con la suma del vector.n";
}
else
{
cout << "El valor digitado no concuerda con la suma del vector.n";
}
return 0;
}
#include <iostream.h>
int SumarVector(int vector[], int final)
{
if (0 == final)
{
return vector[0];
}
else
{
return (vector[final] + SumarVector(vector, final - 1));
}
}
int main(int argc, char* argv[])
{
int vecValores[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int iValor = 0;
cout << "Digite un número: ";
cin >> iValor;
if (SumarVector(vecValores, 10) == iValor)
{
cout << "El valor digitado concuerda con la suma del vector.n";
}
else
{
cout << "El valor digitado no concuerda con la suma del vector.n";
}
return 0;
}
