| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:利用递归模拟多重循环(感觉像是回到了汇编时代,另外,这个代码貌似有些bu ...
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏
已结贴  问题点数:100 回复次数:6 
利用递归模拟多重循环(感觉像是回到了汇编时代,另外,这个代码貌似有些bug 没捉到,欢迎帮捉)
程序代码:
#include<stdio.h>


int bs=5;
void prns(int i,int j,int m,int n,int p,int k)
{
    if(k==0) return;   
    if(i==0) 
    {
        i=bs;
        j-=1;
    }
    if(j==0) 
    {
        i=bs;
        j=bs;
        m-=1;
    }
    if(m==0) 
    {
        i=bs;
        j=bs;
        m=bs;
        n-=1;
    }
    if(n==0)
    {
        i=bs;
        j=bs;
        m=bs;
        n=bs;
        p-=1;
    }
    printf("%d%d%d%d%d\n",i,j,m,n,p);
    --k;
    prns(--i,j,m,n,p,k);
}

int main()
{
    prns(5,5,5,5,5,5*5*5*5*5);
    return 0;
}
2015-06-18 15:38
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:34 
只是一个5位的5进制计数器,设计通用的inc和dec函数,一个循环即可,无需递归。

能编个毛线衣吗?
2015-06-18 16:03
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用wmf2014在2015-6-18 16:03:16的发言:

只是一个5位的5进制计数器,设计通用的inc和dec函数,一个循环即可,无需递归。



目的就是递归  哪怕十分麻烦也要用递归  (说到底就是为了玩)  而不是寻求最简代码

DO IT YOURSELF !
2015-06-18 16:08
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
原始代码 大致如此

程序代码:
    int i,j,m,n,p;
    for(i=5;i>=1;i--)
        for(j=5;j>=1;j--)
            for(m=5;m>=1;m--)
                for(n=5;n>=1;n--)
                    for(p=5;p>=1;p--)
                        printf("%1d%1d%1d%1d%1d\n",i,j,m,n,p);

DO IT YOURSELF !
2015-06-18 16:12
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:34 
这个算吗?

prns(bs,bs,bs,bs,bs,bs*bs*bs*bs*bs + 1);


莫问前尘有愧,但求今生无悔
2015-06-18 22:35
取名字
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:236
专家分:924
注 册:2015-4-27
收藏
得分:34 
没捉到
2015-06-19 12:27
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
好吧,C 我不会。

我理解这 递归 的 子函数 应该是
如果当前位大于1,那么减一,否则就前一位减一。
如果前一位与未减一之前不同,那么当前位=最大值-1
所以,我觉得每位放到数组里好计算,用单变量就无法达到递归的目的,或者代码会很烦。

授人于鱼,不如授人于渔
早已停用QQ了
2015-06-22 11:31
快速回复:利用递归模拟多重循环(感觉像是回到了汇编时代,另外,这个代码貌似有 ...
数据加载中...
 
   



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

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