Correcto!
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
for(i=1; i<=n; i++){
if ( i % 2 ) /* i impar */
pi = pi - 1/(2*i+1);
else /* i par */
pi = pi + 1/(2*i+1);
}
CitarRecurrencia, recursión o recursividad es la forma en la cual se especifica un proceso basado en su propia definición. Siendo un poco más precisos, y para evitar el aparente círculo sin fin en esta definición:En otras palabras, la definición para el caso de "N" se basa en la definición para los casos desde "1" hasta "N-1", algunos de los cuales están predefinidos de cierta manera. No obstante, la misma fuente dice que el término correcto en nuestra lengua es "recurrencia".
Un problema que pueda ser definido en función de su tamaño, sea este N, pueda ser dividido en instancias más pequeñas (< N) del mismo problema y se conozca la solución explícita a las instancias más simples, lo que se conoce como casos base, se puede aplicar inducción sobre las llamadas más pequeñas y suponer que estas quedan resueltas.
Citardirigidos hacia mí. Sino deberé presentar una queja a los moderadores del foro.
¡¡¡PERO POR DIOS!!! , en que lugar estas dejando las Matemáticas.
#include <stdio.h>
#include <stdlib.h>
long long * factorial( int );
int * FilaTrianguloPascal( int );
int main() {
int *fila;
int i, n;
n = 10;
if ( ( fila = FilaTrianguloPascal( n ) ) == NULL )
return -1;
i = 0;
while ( i < n + 1 )
printf( "%d ", fila[i++] );
return 0;
}
/* Calcula los valores de la fila n-esima del triangulo de Pascal */
int * FilaTrianguloPascal( int n ) {
int i, * fila;
long long * fact;
if ( ( fila = (int *) malloc( (n + 1) *sizeof(int) ) ) == NULL )
return NULL;
if ( ( fact = factorial( n ) ) == NULL )
return NULL;
fila[0] = fila[n] = 1;
for ( i = 1; i < n; i++ )
/* fact[k-1] contiene k! */
fila[i] = fact[n - 1]/ fact[i - 1] / fact[n - i - 1];
return fila;
}
/* Devuelve en un arreglo de n+1 elementos los números desde
* 0! hasta n!.
* Si no pudo asignar memoria para el arreglo, devuelve NULL.
*/
long long * factorial( int n ) {
int i;
long long * vector;
if ( ( vector = (long long *) malloc( n * sizeof(long long) ) ) == NULL )
return NULL;
vector[0] = 1;
for ( i = 1; i < n; i++ )
/* vector[i] contiene (i+1)! */
vector[i] = (i + 1) * vector[i-1];
return vector;
}
n = 25;
long long * v = factorial( n );
i = -1;
while ( ++i < n )
printf("%02d! = % 20lld\n", i+1, v[i]);
printf("\n");
void imprimir(unsigned num)
{
unsigned msb = 1U << sizeof(unsigned) * CHAR_BIT - 1;
size_t i;
size_t j;
for (i = 0; i < sizeof(unsigned) * CHAR_BIT; i++){
putchar(num & msb ? '1' : '0');
msb >>= 1;
/* aqui el espacio */
if ( i > 0 && (i + 1)%8 == 0 )
putchar(' ');
}
putchar('\n');
}
void imprimir(unsigned char num)
{
unsigned char mask = 0x80; /* la mascara */
size_t i;
for (i = 0; i < sizeof(char) * CHAR_BIT; i++) {
if ( num & mask )
putchar('1');
else
putchar('0');
mask >>= 1;
}
}