Programación VB para encontrar todos los "números de narciso".
Este programa es algo diferente en VB y VC, porque en VC cuando cada bit se define como un número entero, no tiene reglas de redondeo, pero en VB es diferente. Por ejemplo: (153/100) 10=1 en VC, pero se calcula como 2 en VB, así que preste atención a esto. En VB, primero juzgue a partir del dígito de las unidades si es mayor o igual a 5. Si es así, reste 0,5. Si no, opere directamente.
El programa en VB es el siguiente: un botón y una etiqueta son suficientes.
Atenuar m como entero
Atenuar m1 como entero
Atenuar m2 como entero
Atenuar m3 como entero 'm, m1, m2 , m3 se define mejor por separado; de lo contrario, se producirá un error de incompatibilidad del tipo de parámetro ByRef
Dim str As String
Private Sub Command1_Click()
For m = 100 A 999
m3 = m Mod 10
Si m3 gt; = 5 Entonces
m2 = (m / 10 - 0.5) Mod 10 'Porque cuando a Cuando el número de dígitos es mayor que 5, m/10 se redondeará a uno, es decir, el dígito de las decenas será 1 más que el dato original, por lo que se debe cancelar la regla de redondeo para este dígito de redondeo
De lo contrario
m2 = (m/10) Mod 10
Finalizar si
Si m2 gt = 5 Entonces
m1 = m / 100 - 0.5 'El motivo es el mismo que el anterior
Else
m1 = m / 100
End If
Si ((cúbico(m1) cúbico(m2) cúbico(m3 )) = m) Entonces
str = str CStr(m) vbCrLf 'Guarda cada dato calculado en str y envuélvelo en un nuevo línea
Label2.Caption = str
Fin si
Siguiente m
End Sub
Función cúbica( datos como entero) como doble
cúbico = datos * datos * datos
Función final
El resultado es el siguiente: