| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 973 人关注过本帖, 1 人收藏
标题:新手上路,求一编程的写法!
只看楼主 加入收藏
linjx0123
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
收藏
得分:5 
#include<stdio.h>
void main()
{
    int a[19]={6,16,26,36,46,56,60,61,62,63,64,65,66,67,68,69,76,86,96};
    int b[6],remain,temp[5];
    for(int i=0;i<19;i++)
    {
        remain=100;
        if(remain-a[i]*6<0)
            break;
            b[0]=a[i];
            remain-=b[0];
            temp[0]=remain;
            if(remain<0) break;
        for(int d=i;d<19;d++)
        {
            if(temp[0]-a[d]*5<0)
                break;
            b[1]=a[d];
            remain=temp[0]-b[1];
            temp[1]=remain;
            if(remain<0) break;
            for(int j=d;j<19;j++)
            {
                if(temp[1]-a[j]*4<0)
                    break;
                b[2]=a[j];
                remain=temp[1]-b[2];
                temp[2]=remain;
                if(remain<0) break;
                for(int k=j;k<19;k++)
                    {
                        if(temp[2]-a[k]*3<0)
                            break;
                        b[3]=a[k];
                        remain=temp[2]-b[3];
                        temp[3]=remain;
                        if(remain<0) break;
                        for(int m=k;m<19;m++)
                            {
                                if(temp[3]-a[m]*2<0)
                                    break;
                                b[4]=a[m];
                                remain=temp[3]-b[4];
                                temp[4]=remain;
                                if(remain<0) break;
                                for(int n=m;n<19;n++)
                                {
                                    b[5]=a[n];
                                    remain=temp[4]-b[5];
                                    if(remain==0)
                                        printf("%d %d %d %d %d %d\n",b[0],b[1],b[2],b[3],b[4],b[5]);
                                    else if(remain<0)
                                        break;
                                }
                            }
                    }
            }
        }
    }
}
2010-04-22 21:25
linjx0123
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
收藏
得分:10 
我觉得6楼的答案挺不错的,简洁,易懂,而且效率也不差的,不过最后两个循环应该修改一下

#include <stdio.h>

int main(int argc, char *argv[])
{
    int n46=0,n36=0,n26=0,n16=0,n6=0; /*46,36,26,16,6的个数*/

    for(n46=0;n46<3;n46++)

       for(n36=0;n36<3;n36++)

          for(n26=0;n26<4;n26++)

            for(n16=0;n16<6;n16++)

               for(n6=0;n6<6;n6++)
                 {
                   if(40==(n46*46+n36*36+n26*26+n16*16+n6*6)&&5==(n46+n36+n26+n16+n6))
                     {
                     printf("when one member is 60:n46:%d n36:%d n26:%d n16:%d n6:%d \n",n46,n36,n26,n16,n6);
                     }
                   if(44==(n46*46+n36*36+n26*26+n16*16+n6*6)&&5==(n46+n36+n26+n16+n6))
                     {
                     printf("when one member is 56:n46:%d n36:%d n26:%d n16:%d n6:%d \n",n46,n36,n26,n16,n6);
                     }
                   if(100==(n46*46+n36*36+n26*26+n16*16+n6*6)&&6==(n46+n36+n26+n16+n6))
                     {
                     printf("when all member less than 56:n46:%d n36:%d n26:%d n16:%d n6:%d \n",n46,n36,n26,n16,n6);
                     }

                 }


    return 0;
}
2010-04-22 21:33
aufish
Rank: 2
等 级:论坛游民
威 望:1
帖 子:59
专家分:94
注 册:2010-4-22
收藏
得分:0 
回复 10楼 南国利剑
想好了未有,好出答案了
2010-04-22 21:35
bingxuan0714
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-3-29
收藏
得分:0 
各位大大啊,我就是一在校学生,老师用的win-tc貌似运行不起来啊!!!
2010-04-22 21:49
bingxuan0714
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-3-29
收藏
得分:0 
回复 3楼 aufish
可是还有啊!
  不是只有这一种答案啊!!!
2010-04-22 21:59
NOMIPS
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:86
专家分:537
注 册:2010-3-31
收藏
得分:0 
回复 12楼 linjx0123
有道理,我当初的第一个念头是利用百钱百鸡的算法,故最里的两个循环遵循<=(100/n)的原则。

呵呵!
2010-04-22 22:52
itma
Rank: 4
等 级:业余侠客
帖 子:105
专家分:266
注 册:2010-2-8
收藏
得分:0 
12楼的算法比十一楼的算法效率高很多。
2010-04-23 00:30
baqanss
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-4-19
收藏
得分:0 
在WIN-C真运不起来!
2010-04-23 11:33
快速回复:新手上路,求一编程的写法!
数据加载中...
 
   



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

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