一世轻尘 发表于 2020-12-30 16:17:26

递归优化

本帖最后由 一世轻尘 于 2020-12-30 17:32 编辑

xdm,这个要怎么写啊,我是这样写的,运行结果没有问题,但是题目好像要求必须要有个n,看不太懂这题目,求大佬帮我改一下。{:10_254:}
#include<stdio.h>
#include<stdlib.h>
int num(int x);
int main()
{
    int n1={0},a={0},m,i;
    for(i=0;;i++)
    {
      scanf("%d",&n1);
      if(n1==0)
            break;
    }
    for(i=0;n1!=0;i++)
    {
      a=num(n1);
    }
        i=0;
    while(a)
    {
      printf("%d\n",a);
                i++;
    }
        system("pause");
    return 0;
}

int num(int x)
{
    if(x<5)
      return x;
    else
      return (x-3+num(x-1));
}

风过无痕1989 发表于 2020-12-31 01:28:22

输入输出你自己去改
#include <stdio.h>
int b, a = { 0,1,2,3,4,0 };// 初始化数组
int num(int n)
{
        if (n > 4)
        {
                a = n - 3 + num(n - 1);
        }
        b = a;
        return b;
}

int main()
{
        int m, n;
        while (1)      // 若要循环输入,则要此循环,若输入一个年份,输出一个数据,则不需此循环
        {
                scanf("%d", &n);
                m = num(n);
                if (n != 0)
                        printf("%d\n", m);
        }
}
页: [1]
查看完整版本: 递归优化