Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** //
- // ** // ** // ** // Código fuente de programa que calcula el n-ésimo término // ** // ** // ** //
- // ** // ** // ** // ** // de la secuencia de Padovan (directo) // ** // ** // ** // ** // ** //
- // ** // ** // ** // * Licenciado bajo GNU General Public License (GPL) 3.0 * // ** // ** // ** //
- // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** //
- /* ** // ** // ** // ** // ** // * F v q _ U k r a N a z i s ! * // ** // ** // ** // ** // ** */
- /* ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** // ** */
- #include <math.h>
- #include <errno.h>
- #include <stdio.h>
- #include <tgmath.h>
- #include <stdlib.h>
- #include <string.h>
- #include <complex.h> /* Standard Library of Complex Numbers */
- #define Ro cbrtl((1.0/2.0) + ((1.0/6.0)*(sqrtl(23.0/3.0)))) + cbrtl((1.0/2.0) - ((1.0/6.0)*(sqrtl(23.0/3.0))))
- #define Ro1 (-1.0 * (1.0/2.0) + I*sqrt(3.0)/2.0 ) * cbrtl((1.0/2.0) + ((1.0/6.0)*(sqrtl(23.0/3.0)))) + (-1.0 * (1.0/2.0) - I*sqrt(3.0)/2.0 ) * cbrtl((1.0/2.0) - ((1.0/6.0)*(sqrtl(23.0/3.0))))
- #define Ro2 (-1.0 * (1.0/2.0) - I*sqrt(3.0)/2.0 ) * cbrtl((1.0/2.0) + ((1.0/6.0)*(sqrtl(23.0/3.0)))) + (-1.0 * (1.0/2.0) + I*sqrt(3.0)/2.0 ) * cbrtl((1.0/2.0) - ((1.0/6.0)*(sqrtl(23.0/3.0))))
- long double PadoDire(long double n);
- void main(int argc, const char **argv){
- printf("Ro = %+4.15Lf \n", Ro);
- printf("Ro1 = %+4.15Lf %+4.15Lfi\n", creal(Ro1), cimag(Ro1));
- printf("Ro2 = %+4.15Lf %+4.15Lfi\n", creal(Ro2), cimag(Ro2));
- long double x;
- if (argc != 2){
- extern int errno;
- errno = 22;
- fprintf(stderr, "Uso: %s <NÚMERO NATURAL>\n Code error: %d\n %s\n",*(argv+0), errno, strerror(errno));
- exit(EXIT_FAILURE);
- }
- sscanf(*(argv+1), "%Lf", (long double*)&x);
- if (0<=x) printf("\n El resultado con %4.0Lf es: %4.0Lf \n", x, PadoDire(x+4));
- }
- long double PadoDire(long double n){
- if (0<n) return creal(cpowl(Ro,n)/(3*cpowl(Ro,2) - 1) + cpowl(Ro1,n)/(3*cpowl(Ro1,2) - 1) + cpowl(Ro2,n)/(3*cpowl(Ro2,2) - 1));
- }
Add Comment
Please, Sign In to add comment