fork download
  1. #include <stdio.h>
  2. //a{n} = 2a{n-1} + a{n-2}, a{1}=2, a{2}=3(再帰なし版)
  3. int rec(int n){
  4. if(n==1) return 2;
  5. else if(n==2) return 3;
  6. return 2*rec(n-1) + rec(n-2);
  7. }
  8. int main(void) {
  9. int n = 4;
  10. int a, b = 3, c = 2;
  11. for(int i = 3; i <= n; i++){
  12. a = 2*b + c; //a{n} = 2a{n-1} + a{n-2}
  13. c = b; // a{n-2} = a{n-1}
  14. b = a; // a{n-1} = a{n}
  15. }
  16. printf("数列a%dの値は%d\n", n, a);
  17.  
  18. printf("再帰で求めた数列a%dの値は%d",n,rec(n));
  19. return 0;
  20. }
  21.  
  22.  
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
数列a4の値は19
再帰で求めた数列a4の値は19