用递归的方法求该数列的第x项k(x)

/
//往下输入/插入题目:
/
某数列为K(n)的定义为:。

       1              n=1

k(n)= k(n-1)×2 n为偶数
k(n-1)×3 n为奇数

      用递归的方法求该数列的第x项k(x)

输入
x(若x小于1输出input data error!)

输出
k(x)=

样例输入
1
2
0
样例输出
k(1)=1
k(2)=2
input data error!

*/

#include 
#include 
//在此下方插入自定义函数:
int k(int x);
int x_is_odd(int x);
int x_is_even(int x);
int main()
{
        int x;
    while (scanf("%d",&x) != EOF)
    {
        if(x < 1)
        {
            printf("input data error!\n");
        }
        else
        {
        printf("k(%d)=%d\n",x,k(x))  ;
        }
    }
//printf("test_2:\n");
   // scanf("%d",&x);//&x  
    return 0;
} 
int k(int x)
{
    if(x%2 == 0)
    {
       return x_is_even(x);
    
    }
    else
    {
       return x_is_odd(x);

    }
}
int x_is_odd(int x)//odd 基数的:
{
    int x_is_even(int x);
    if(x == 1) return 1;

    //int k;
    //x_is_odd(x);
   /*  k = x_is_odd(x-1) * 3;
    return k; */
    return x_is_even(x-1) * 3;
}

int x_is_even(int x)//odd 基数的:
{   
    int x_is_odd(int x);
    if(x == 1) return 1;
    
    //int k;
    //x_is_odd(x);
   /*  k = x_is_even(x-1) * 2;
    return k; */
    return x_is_odd(x-1) * 2;
}

你可能感兴趣的:(用递归的方法求该数列的第x项k(x))