编辑代码

#include <stdio.h>
int F(int n)
{
    if(n==1)
    {
        return 1;
    }else if(n==2)
    {
        return 2;
    }else {
        return F(n-1)+F(n-2);
    }
}
int F2(int n)
{
    if(n<=2) return n;
    int dp[n+1];
    dp[1]=1;
    dp[2]=2;
    for(int i=3;i<=n;i++)
    {
        dp[i]=dp[i-1]+dp[i-2];
    }
    return dp[n];
}
int F3(int n)
{
    if(n<=2) return n;
    int prev1=1;
    int prev2=2;
    int current;
    for(int i=3;i<=n;i++)
    {
        current=prev1+prev2;
        prev1=prev2;
        prev2=current;
    }
    return current;
}

int factorial(int n)
{
    if(n==0){
        return 1;
    }else {
        return n*factorial(n-1);
    }
}
int factorial2(int n)
{
    int nums =1;
    for(int i=1;i<=n;i++)
    {
        nums*=i;
    }
    return nums;
}

int fib(int n)
{
    if(n<0) return -1;
    if(n==1 || n==2){
        return 1;
    }else
    {
        return fib(n-1)+fib(n-2);
    }
}
int huiwen(char n[],int low,int high)
{   
    if(high ==0 || high ==1){
        return 1;
    }else{
        if(n[low]==n[high]){
            return huiwen(n,low+1,high-1);
        }else{
            return 0;
        }
    }
}
int ishuiwen(char n[],int number)
{   
    int mid=number/2;
    for(int i=0;i<mid;++i)
    {
        if(n[i]!=n[number-i]) return 0;
    }
    return 1;
}
int main () {
    // printf("%d",F(50));
    // printf("%d",factorial(4));
    printf("%d\n",factorial2(4));
    char test[]="ababac";
    printf("%d\n",huiwen(test,0,4));
    printf("%d",ishuiwen(test,5));
}