| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3258 人关注过本帖, 3 人收藏
标题:今天无意中发现的一个很优美的递归
只看楼主 加入收藏
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
回复 10楼 青春无限
给酱油女跪了!能不能换个词啊,除了“学习”和“看看”+一个表情
2012-12-18 23:01
wanjiawei
Rank: 4
等 级:业余侠客
帖 子:61
专家分:213
注 册:2012-11-16
收藏
得分:0 
个~
2012-12-18 23:03
空沃夫
Rank: 2
来 自:老和山职业技术学院
等 级:论坛游民
帖 子:48
专家分:76
注 册:2012-12-7
收藏
得分:10 
程序代码:
#include<stdio.h>
int main()               \*献丑了,感觉还没达到LZ说的优美。*\
{

    double a,b,c,d,i,j;
    int n;
    scanf("%d",&n);
    void xunzhao(double i,double j,int n);      \*定义寻找函数*\
    printf("please input:\n");

    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
   

    xunzhao((double) a/b,(double) c/d,n);
    getchar();
    return 0;
}
void xunzhao(double i,double j,int n)
{
     double t=1; 
     double k;
     if(n==1)
     return;
     xunzhao(i,j,n-1);             \* 这里开始递归。*\
     for(;(k=(double)t/n<j;t++)
     if(k>i)
     printf("%.2f/%.2f\n",t,n);     \*这个循环为了找出满足条件的分数,不过也可以用递归代替*\
}
2012-12-18 23:12
空沃夫
Rank: 2
来 自:老和山职业技术学院
等 级:论坛游民
帖 子:48
专家分:76
注 册:2012-12-7
收藏
得分:0 
等等,以上出现失误。。
2012-12-18 23:19
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
没明白 不过有分 嘻嘻
2012-12-18 23:25
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
看看

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-12-18 23:29
冰冻零点
Rank: 3Rank: 3
来 自:西安电子科技大学
等 级:论坛游侠
帖 子:81
专家分:136
注 册:2012-9-18
收藏
得分:0 
完全不明白楼主想表达神马,巨汗。现在学习刘汝佳的算法书中,赶脚递归确实挺有意思的。坐等散分

好好学习,天天向上
2012-12-18 23:33
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:15 
程序代码:
#include <stdio.h>

/* 判断a,b是否包含公共因子 */
int has_factor(int a, int b)
{
    int min = a < b ? a : b; int i;
    for (i = 2; i <= min; ++i)
        if (a % i == 0 && b % i == 0)
            return 1;
    return 0;
}

/* 判断两个分数的大小 */
int compare(int a, int b, int c, int d)
{
    a = a * d;
    c = c * b;
    return a - c;
}

/* 交换两个数 */
void swap(int* pa, int* pb)
{
    int t = *pa;
    *pa = *pb;
    *pb = t;
}

int main(void)
{
    int a, b, c, d, n, i, j;
    scanf("a=%d,b=%d,c=%d,d=%d,n=%d", &a, &b, &c, &d, &n);
    if (compare(a, b, c, d) > 0)
        swap(&a, &c), swap(&b, &d);
    for (i = 2; i <= n; ++i)
        for (j = 1; j < i; ++j)
            if (compare(j, i, a, b) > 0 && compare(j, i, c, d) < 0 && !has_factor(j, i))
                printf("%d/%d\n", j, i);
    return 0;
}

没有排序,要排序的话又要写一堆代码,能力有限啊,我很想看看楼主的递归代码。

My life is brilliant
2012-12-18 23:42
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
收藏
得分:0 
坐等楼主代码
2012-12-19 07:30
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:0 
先收藏

www.qunxingw.wang
2012-12-19 08:11
快速回复:今天无意中发现的一个很优美的递归
数据加载中...
 
   



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

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