递归不行吗
#include<stdio.h> #include<string.h> // #define N 51 #define ll long long int fib(int n){ if(n<=1) return 0; else if(n==2) return 1; else return fib(n-1)+fib(n-2); } int main(){ // int str[N]; int n; ll res; scanf("%d",&n); res=fib(n); printf("%ld",res); return 0; }