1121123211234321……求第n项 用c 递归

如题所述

第1个回答  2021-05-27

1,121,12321,1234321,……求第n项 用c 递归:

#include<stdio.h>

void fun1(int n)

{if(n>1)fun1(n-1);

 printf("%d",n);

}

void fun2(int n)

{printf("%d",n);

 if(n>1)fun2(n-1);

}

int main(void)

{ int n;

  scanf("%d",&n);

  fun1(n);

  fun2(n-1);

  return 0;

}

=====================

或:

#include<stdio.h>

int k;

void fun(int n)

{if(k==0&&n>1)fun(n-1);

 if(n==1)k=1;

 printf("%d",n);

 if(k==1&&n>1)fun(n-1);

}

int main(void)

{ int n;

  scanf("%d",&n);

  fun(n);

  return 0;

}

第2个回答  2021-05-27

#include <stdio.h>

int g(int n, int m) {

    if(n > 2*m-1)

        return g(n-(2*m-1), m + 1);

    else {

        if(n > m)

            return 2 * m - n;

        return n;

    }

}

int f(int n) {

    if(n<1) return 0; // 不能小于1

    return g(n, 1);

}

int main()

{

    for(int i = 1; i < 20; ++i) {

        printf("第 %3d 元素为 %3d\n", i, f(i));

    }

}


1121123211234321……求第n项 用c 递归
int main(void){ int n;scanf("%d",&n);fun(n);return 0;}

相似回答