瑞星卡卡安全论坛技术交流区系统软件 【求助】编程高手救命啊,版主帮忙啊~~救人一命胜造七级浮屠

1   1  /  1  页   跳转

【求助】编程高手救命啊,版主帮忙啊~~救人一命胜造七级浮屠

【求助】编程高手救命啊,版主帮忙啊~~救人一命胜造七级浮屠

一个整数拆分成已知的一组数的和,可以不全取到。
(我的代码生成不了要的答案,需要高手帮忙优化更正一下)


#include <stdio.h>
#include <conio.h>
#define N 6
int a[N+1]={1,57,71,87,97,99,101};
int b[N+1],results=0,mole=580;
int back[N+1]={0};
int c[N+1][20]={0};
void Comout()
{    int i,j=0,k;
    int d[N+1]={0};
    for(i=1;i<=N;i++)
    for(k=1;k<=N;k++) if( c[k]!=0){d=k;break;}
    for (k=1;k<=N;k++) if(d[k]!=back[k]){j=1;break;}
    if(j==1)
    {    for(i=1;i<=N;i++)
            if(d!=0)
            {printf("{%d,%d}",a,d);back=d;}
        results++;printf("\n");
    }

}
void Searchans(int acidnum,int line)
{    int i,k;
    if(acidnum>0)
        {
            for(i=1;i<=b[line];i++)
            {    {c[line]=1;
                mole-=a[line]*i;}
                /*k=acidnum-i*/
                if((k=acidnum-i)>=0)
                {
                    Searchans(k,line+1);
                    {c[line]=0;
                    mole+=a[line]*i;}
                    Searchans(acidnum,line+1);
                }
                else
                {    {c[line]=0;
                    mole+=a[line]*i;}
                    Searchans(acidnum,line+1);
                    break;
                }
            }
        }
    else    if( mole==0) Comout();
}

        void Find()
        {    int i;
               /*    mole-=18;*/
            for(i=1;i<=N;i++) b=mole/a;
        }

        void Finals()
        {    printf("ans is :%d\n",results);}

        void Getmole()
        {    printf("please enter the mole:");
            scanf("%d",&mole);
            /*printf("mole is %d\n",mole);*/
        }
        void Making()
        {    int i,j,k;
            for(j=0;j<=N;j++)
            for(i=b[j]+1;i<20;i++) c[j]=-1;
            for(k=0;k<=N;k++)c[k][0]=-1;
        }
void main()
{      int i,line,j;
    clrscr();
    /*Getmole();*/
    Find();
    Making();
    for(j=1;j<=N;j++) if(b[j]!=0) {line=j;break;}
    for(i=b[N];i<=b[1];i++)    Searchans(i,line);
    Finals();
}
最后编辑2005-08-01 09:14:42
分享到:
gototop
 

谢谢你。可是问题还是存在,我郁闷啊~~稳被导师骂了。
gototop
 

...........................
gototop
 

我昏倒啊,解决问题是关键~~我已经没有时间了。
拜托各位~~~~~~~~~~~~~~~~~~~
gototop
 

哎,急需帮助啊,各路英雄快快来啊!!!
gototop
 

怎么没人顶啊,救命啊~~~
gototop
 

没人顶,我自己顶个!!!

。。。。。。。。。。。。

拜托各位大侠了。。。。。
gototop
 

我怎么不能上传附件啊,郁闷哦~~

能加我QQ联系吗?QQ上很清楚....

157283557,谢谢大侠们了..........
gototop
 
1   1  /  1  页   跳转
页面顶部
Powered by Discuz!NT