| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 759 人关注过本帖
标题:求一个好的解决方法!
取消只看楼主 加入收藏
lchpersonal
Rank: 2
等 级:论坛游民
威 望:1
帖 子:34
专家分:81
注 册:2012-7-27
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
求一个好的解决方法!
1.编写一个程序,输出所有自然数之和为20的等式,要求,等式中的每个加数因子不能相同! 例如: 1+2+17=20;是合法的。而10+10就不合法!
搜索更多相关主题的帖子: 自然数 
2012-10-21 09:50
lchpersonal
Rank: 2
等 级:论坛游民
威 望:1
帖 子:34
专家分:81
注 册:2012-7-27
收藏
得分:0 
回复 3楼 heishu
能写一下思路吗?

重剑无锋,大巧不工
2012-10-21 16:54
lchpersonal
Rank: 2
等 级:论坛游民
威 望:1
帖 子:34
专家分:81
注 册:2012-7-27
收藏
得分:0 
给出代码的高手们能不能在代码上写点注释呀,看别人的代码真的很痛苦。不过还是很谢谢,学习了

[ 本帖最后由 lchpersonal 于 2012-10-22 19:15 编辑 ]

重剑无锋,大巧不工
2012-10-22 19:07
lchpersonal
Rank: 2
等 级:论坛游民
威 望:1
帖 子:34
专家分:81
注 册:2012-7-27
收藏
得分:0 
回复 3楼 heishu
你的算法还可以优化的! 红色的地方是添加的,你看看对不对?
#include<stdio.h>
int a[100];
int qiuhe(int *q,int n)          //求和函数
{int i,he=0;
for(i=0;i<n;i++)
he+=q[i];
return he;

}
void zhonglei(int j,int k)
{int i,sum;
sum=qiuhe(a,j);
    if(20==sum&&j!=1)         //符合条件的输出
    {
    for(i=0;i<j;i++)
    {printf("%d",a[i]);
    if(i<j-1)
    printf("+");
    }
    printf("=20\n");
   
    }
    else if(j<7)
    {
        for(i=k;i<=20;i++)           //不回溯递归
        {
        a[j]=i;
        zhonglei(j+1,k+1);
        ++k;
        }
   
   
    }
}
void main()
{
zhonglei(0,0);
}

重剑无锋,大巧不工
2012-10-22 23:20
快速回复:求一个好的解决方法!
数据加载中...
 
   



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

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