Hacer una pregunta sobre programación en lenguaje C++ o C
Según tu pregunta (escrita en lenguaje C):
1.
2. El número de niveles de recursividad corresponde al número de dígitos matemáticos.
Mi función personalizada int checkNum(int num, int w) es del tipo que desea.
Su función es determinar si el número num es un número de w dígitos, y devolver 1 si lo es y 0 si no lo es.
w controla el número de niveles de recursividad. Genera un número entero de 1 an según el número de dígitos.
#include
int checkNum(int num,int w);//Utiliza la recursividad para determinar si el número num es un número de w dígitos
int getW(int num);//Obtener el número de dígitos del número
int main()
{
int i, n,flag,num= 1,mW=0;//mW: el número máximo de dígitos del 1 al n
printf("Ingrese un número n:");
scanf("%d",&n );
mW=getW(n);
printf("Los números enteros del 1 al %d son:\n",n);
for( i=1;i<=mW;i++)// Salida secuencial de 1 dígito a mW dígitos
{
printf("-- ----% d dígitos-------\n",i);
mientras(1)
{
if(núm >n)
romper;
if((flag=checkNum(num,i)))
printf("%d\n",num) ;
if(!flag)
romper;
num++;
}
if(num> n) p>
romper;
}
retorno 1;
}
int getW(int num) //Obtener el número de dígitos
{
int n=1;
while(1)
{
num =num/10;
si(num==0)
devuelve n;
n++;
}
return 1;
}
int checkNum(int num,int w)//Usa la recursividad para determinar si el número num es un dígito w número
{
num=num/10;
if(--w && num>0)
devolver checkNum(num ,w);
if(w==0 && num==0)
devuelve 1;
if(w==0 && num>0 )
devuelve 0;
devuelve 0;
}