¿Cómo escribir un programa en C# para encontrar el número de narcisos?
C#, escrito usando .Net6:
//Buscar en el rango del número de narcisos var?index?=?100;?//Debido a que contar narcisos requiere tres o más dígitos Número, entonces, a partir de 100 var?end?=?10000;
// ¿Cuerpo del bucle? Como se indicó anteriormente, entonces el rango es??in for?(;?index?<=?end;?index++)?{
// Utilice log10 para obtener el número de dígitos int?dg?=? ( int)Math.Log10(index)?+1;?//El número de dígitos en "log10 " se redondeará hacia abajo para preservar el número de dígitos enteros en binario (+1 se debe a que se incluyen los siguientes dígitos) // convertirá cada dígito en un número (no use "char" a "int" en "string" para conversión numérica pura) var?sum?// Dividir el acumulador var digits = new int[dg];?// Crear un for(int?i?=?dg;?i?>?0;?i--)
{
var?x?=?index?-?sum;? // Para redondear al extremo superior, consulte ?P1int?dplace?=?(int)Math.Pow(10,?i-1);?// El valor del valor posicional actual, como 1, 10, 100 , 1000.. .var?p?=?x?/?dplace;?//¿El valor de la suma de bits actual?//Los bits obtenidos previamente se contarán en el acumulador para el redondeo posterior (P1)dígitos[dg ?//Los bits se agregarán al acumulador}
//Determina si el número cumple con la condición var?nn?=?0;
foreach(var?d?in? dígitos)
{
nn?+=?(int)Math.Pow(d,?dg);?// Suma de potencias de bits de ??}
if(nn? ==?index)?// Devuelve el resultado cuando la suma de las potencias de bits de todos los bits es igual al número mismo{
Console.WriteLine($"{index) }? es el número de narcisos");
Console.WriteLine($"{index}? es el número de narcisos");
p>}
}