标题:代码实现出现问题,希望大神能来指正
只看楼主
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:4 
加油

2020-03-12 10:12
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:4 
真按照题目要求的做递归
哪怕你加一个数组做优化也是很糟糕的实现
从前往后计算会简单很多
一共才21*21*21个数据
打表
然后三层循环 0到21 直接算就完事了
把输入数据超出0-20这个范围的数据做一个约束
然后直接输出数组元素就完事了

程序代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
    int arr[25][25][25];
    for(int x = 0; x < 21; ++x)
        for(int y = 0; y < 21; ++y)
            for(int z = 0; z < 21; ++z)
                if(x == 0 || y == 0 || z == 0)
                    arr[x][y][z] = 1;
                else if(x < y && y < z)
                    arr[x][y][z] = arr[x][y][z-1] + arr[x][y-1][z-1]-arr[x][y-1][z];
                else
                    arr[x][y][z] = arr[x-1][y][z] + arr[x-1][y-1][z] + arr[x-1][y][z-1] - arr[x-1][y-1][z-1]; 
    printf("%d\n", arr[20][20][20]);
    return 0;
}


https://zh.
2020-03-13 23:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499700-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.177290 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved