Ayude a un experto en lenguaje C a crear un programa para encontrar todos los "números de agujeros negros" entre 1 y 50.000.
¡Gracias! (Hay algo sobre la cantidad de agujeros negros)
Después de pensarlo durante mucho tiempo, lo depuré en VC++6.0 durante casi medio día y ahora he escrito un programa para encontrar el número de agujeros negros en tres dígitos y cuatro. Números de dígitos (uno y dos dígitos se pueden conocer por definición No hay un número de agujero negro en el número), ahora lo publicó para que todos lo critiquen y corrijan: (El código para resolver el número de agujero negro en el número de cinco dígitos continuará)
#include
#include
usando el espacio de nombres std;
int maxof3( int,int,int); //Encuentra el número máximo de números de tres dígitos después de la reordenación
int minof3(int,int,int //Encuentra el número mínimo después de la reordenación de tres dígitos
p>int maxof4(int,int,int,int); //Encontrar la reordenación de 4 dígitos El número máximo después de ordenar
int minof4(int,int,int,int /); /Encontrar el número máximo después de reorganizar 4 dígitos
void main()
{
int i;
for(i= 100;i<=999;i++) //Encuentra el número de agujeros negros en un número de tres dígitos
{
int hun,oct,data,max,min,j ;
hun=i/100; oct=i%100/10; datos=i%10;
max=maxof3(hun,oct,datos);
min=minof3(hun,oct,data);
j=max-min;
hun=j/100; oct=j%100/10; j%10;
if(min==minof3(hun,oct,data))
cout<
}
for(i=1000;i<=9999;i++) / /Encuentra el número de agujeros negros en números de cuatro dígitos
{ p>
int t,h,d,a,max,min,j;
t=i/ 1000; h=i%1000/100; =i%10;
max=maxof4(t,h,d,a);
min=minof4(t,h,d,a);
j=máx-mín;
t=j/1000; h=j%1000/100; d= j%100/10; if(min==minof4(t,h,d,a))
cout<
} p>
}
int maxof3(int a,int b,int c)
{
int t;
t=a;
si(b>t)
{t=b;b= a;a=t;}
si(c>t )
{t=c;c=b;b=a;a=t;}
más
{if(c>b) p>
{t=c;c=b;b=t;}
}
return(a*10b*1c);
}
int
minof3(int a,int b,int c)
{
int t;
t=a;
si(b >t)
{t=b;b=a;a=t;}
si(c>t)
{t=c;c =b;b=a;a=t;}
else
{if(c>b)
{t=c;c=b; b=t;}
}
return(c*10b*1a);
}
int maxof4 (int a,int b,int c,int d)
{
si(a
{a=a^b;b= a^b;a=a^b;}
if(c {c=c^d;d=c^d;c=c^d; } si(a {a=a^c;c=a^c;a=a^c;} si( b {b=b^d;d=b^d;b=b^d;} si(b {b=b^c;c=b^c;b=b^c;} return(a*100b*10c*1d); } int minof4(int a,int b,int c,int d) { if(a {a=a^b;b=a^b;a=a^b;} si(c {c=c^d; d=c^d;c=c^d;} si(a {a=a^c;c=a^c;a=a^ c;} si(b {b=b^d;d=b^d;b=b^d;} if(b {b=b^c;c=b^c;b=b^c;} return(d*100c*10 b*1a); } Además, encontré un programa para resolver el número del agujero negro en cinco dígitos. Simplemente copie parte del código en el archivo de arriba: #include usando el espacio de nombres std; int maxof5(int,int,int,int,int); int minof5(int,int,int,int,int); void main() { int i; for(i=10000;i<=50000;i++) { int dt,t,h,d,a,max,min,j; dt=i/10000; t=i%10000/1000; h=i%1000/100; d=i%100/10; a=i%10; máx=maxof5( dt,t,h,d,a); min=minof5(dt,t,h,d,a); j=max-min; dt=j/10000; t=j%10000/1000; h=j%1000/100; d=j%100/10; a=j%10; si(mín= =minof5(dt,t,h,d,a)) cout< ¡un número de agujero negro!"< } cout<<"maxof5(5,2,1,8,3) es: "< cout<<"minof5(5,2,1,8,3) es: "< //Si el número es correcto } int maxof5(int a,int b,int c,int d,int e) { int t; si (a< b) {a=a^b;b=a^b;a=a^b;} si(c { c=c^d;d=c^d;c=c^d;} si(a {a=a^c;c =a^ c;a=a^c;} si(b {b=b^d;d=b^d;b=b^d ;} si(b {b=b^c;c=b^c;b=b^c;} si (e< =d) {} else si(d<=e&&e {t=d ;d= e;e=t;} else if(c<=e&&e {t=c;c=e; e=d ;d=t;} else