Advertisement
silentkiler029

uva 10579 - Fibonacci Numbers

May 9th, 2020
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.19 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char fibo[5000][1001];
  5.  
  6. void build_fibo_string()
  7. {
  8.     int i, j;
  9.     for(i = 0; i < 5000; i++){
  10.         for(j = 0; j < 1000; j++){
  11.             fibo[i][j] = '0';
  12.         }
  13.         fibo[i][1000] = '\0';
  14.     }
  15. }
  16.  
  17. void create_fibo_number(int n)
  18. {
  19.     int sum = 0, carry = 0;
  20.     int i;
  21.     for(i = 999; i >= 0; i--){
  22.         sum = fibo[n-1][i] + fibo[n-2][i] + carry - '0' - '0';
  23.         carry = (sum) / 10;
  24.         fibo[n][i] = (sum) % 10 + '0';
  25.     }
  26. }
  27.  
  28. void build_fibo_number()
  29. {
  30.     int i, j;
  31.     fibo[0][999] = '1';
  32.     fibo[1][999] = '1';
  33.     for(i = 2; i < 5000; i++){
  34.         create_fibo_number(i);
  35.         if(fibo[i][0] > '0') break;
  36.     }
  37. }
  38.  
  39. int main()
  40. {
  41.     int n, i, j;
  42.  
  43.     build_fibo_string();
  44.     build_fibo_number();
  45.  
  46.     while(scanf("%d", &n) == 1){
  47.         i = 0;
  48.         //printf("HI\n");
  49.         for(i = 0; ; i++){
  50.             //printf("HELLO\n");
  51.             if(fibo[n - 1][i] != '0'){
  52.                 for(j = i; j < 1000; j++){
  53.                     printf("%c", fibo[n - 1][j]);
  54.                 }
  55.                 printf("\n");
  56.                 break;
  57.             }
  58.         }
  59.     }
  60.  
  61.  
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement