Problema con generalización en basic

Hola
Un numero de 2 cifras se escribe 10x+y
uno de 3 100x+10y+z etc
Necesito probar que esta igualdad se cumple para algunos números
Para un numero de tres cifras
for x=1 to 9
for y=1 to 9
for z=1 to 9
if (x*y*z*1,5=100x+10y+z) then print x,y,z
next x
next y
next x
Como generalizo esta idea para números de cualquier longitud
Para 2 cifras me da 48 pues
4*8*1,5=48

1 Respuesta

Respuesta
1
Lo siento, no entiendo la pregunta, tienes que perdonarme pero intenta formulármela de otra manera.
Es problema es así, encontrar todos los números que cumplan la siguiente condición "que multiplicadas todas sus cifras por 1,5 me den el numero"
Ejemplo
En el caso de 2 cifras encuentro el 48
Pues
4*8*1,5=48
ahora un numero de 2 cifras se escribe 10x+y
uno de tres
100x+10y+x
uno de cuatro
1000x+100x+10z+u
Etc
A través de los ciclos for estoy tratando de recorrer las posibilidades, el problema es que no se como generalizar esto para un numero de 10cifras, 20, o más, me imagino que usando matrices o vectores, pero no se como
Lo que te escribí es una muestrapara el caso de 3 dígitos, si lo hicira para más tendría que agregar más ciclos for y más letras en el if, hay algún método más corto
Creo que esta vez te he entendido. Prueba esto, en un formulario coloca un botón y un listbox, después copia el siguiente código:
Private Sub Command1_Click()
Dim n
Dim l
Dim r
For n = 0 To 100000 'aquí puedes poner hasta el número que quieras, si es muy grande tardará, aprovechas pa tomar un café
r = 1
For l = 1 To Len(n)
r = r * Mid(n, l, 1)
Next l
DoEvents
If r * 1.5 = n Then List1.AddItem n
Next n
MsgBox ("Terminao")
End Sub
Haber si esto te sirve.
Estimado amigo, gracias por contestar, mira hice lo que me publicate, no se si lo hago mal o algo así pero no ocurre nada, me podrías mandar tu idea en un archivo por correo por favor, mi correo es
[email protected]
Ya te envío el formulario por email.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas