| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1745 人关注过本帖
标题:一个入门必做的题,我做了 却不知道错在那里??
只看楼主 加入收藏
flamelaird
Rank: 1
来 自:广东佛山
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-3-26
收藏
得分:0 
for语句嵌套使用好像是要加  " { } "的!
2008-04-14 18:13
712712712
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-11-29
收藏
得分:0 
根据给定的等式好像可以推算出
Y=1
G=0
F=5
B=9
X=A+1
有这些条件应该能加快运算速度
2008-04-14 18:41
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
#include<stdio.h>
main()
{
  int A,B,C,D,E,F,G,X,Y,Z;
  for(A=1;A<=9;A++)
   for(B=8;B<=9;B++)
     for(C=6;C<=9;C++)
       for(D=6;D<=9;D++)
         for(E=0;E<=9;E++)
           for(F=5;F<=9;F++)
             for(G=0;G<=9;G++)
               for(X=1;X<=9;X++)
                 for(Y=0;Y<=9;Y++)
                   for(Z=0;Z<=9;Z++)
                    if(A!=B&&A!=C&&A!=D&&A!=E&&A!=F&&A!=G&&A!=X&&A!=Y&&A!=Z)
                     if(B!=C&&B!=D&&B!=E&&B!=F&&B!=G&&B!=X&&B!=Y&&B!=Z)
                      if(C!=D&&C!=E&&C!=F&&C!=G&&C!=X&&C!=Y&&C!=Z)
                       if(D!=E&&D!=F&&D!=G&&D!=X&&D!=Y&&D!=Z)
                        if(E!=F&&E!=G&&E!=X&&E!=Y&&E!=Z)
                         if(F!=G&&F!=X&&F!=Y&&F!=Z)
                          if(G!=X&&G!=Y&&G!=Z)
                           if(X!=Y&&X!=Z)
                            if(Y!=Z)
  if((A*10000+B*1000+C*100+D*10+E+2*(D*100+F*10+G))==(X*10000+Y*1000+Z*100+D*10+E))
  {     
    printf("ABCDE=%d%d%d%d%d\n", A,B,C,D,E);
    printf("  DFG=  %d%d%d\n+ DFG=  %d%d%d\n",D,F,G,D,F,G);
    printf("-------------\nXYZDE=%d%d%d%d%d\n,X,Y,Z,D,E);
 }                                                                    }                     getch();
}
我看这个程序更适合你的,哈哈!排列有序而且运算正确无误!呵呵!

♂ 死后定当长眠,生前何须久睡。♀
2008-04-14 20:44
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
#include<stdio.h>
main()
{
  int A,B,C,D,E,F,G,X,Y,Z;
  for(A=1;A<=9;A++)
   for(B=8;B<=9;B++)
     for(C=6;C<=9;C++)
       for(D=6;D<=9;D++)
         for(E=0;E<=9;E++)
           for(F=5;F<=9;F++)
             for(G=0;G<=9;G++)
               for(X=1;X<=9;X++)
                 for(Y=0;Y<=9;Y++)
                   for(Z=0;Z<=9;Z++)
                    if(A!=B&&A!=C&&A!=D&&A!=E&&A!=F&&A!=G&&A!=X&&A!=Y&&A!=Z)
                     if(B!=C&&B!=D&&B!=E&&B!=F&&B!=G&&B!=X&&B!=Y&&B!=Z)
                      if(C!=D&&C!=E&&C!=F&&C!=G&&C!=X&&C!=Y&&C!=Z)
                       if(D!=E&&D!=F&&D!=G&&D!=X&&D!=Y&&D!=Z)
                        if(E!=F&&E!=G&&E!=X&&E!=Y&&E!=Z)
                         if(F!=G&&F!=X&&F!=Y&&F!=Z)
                          if(G!=X&&G!=Y&&G!=Z)
                           if(X!=Y&&X!=Z)
                            if(Y!=Z)
                              if((A*10000+B*1000+C*100+D*10+E+2*(D*100+F*10+G))==(X*10000+Y*1000+Z*100+D*10+E))
                               {     
                                 printf("ABCDE=%d%d%d%d%d\n", A,B,C,D,E);
                                 printf("  DFG=  %d%d%d\n+ DFG=  %d%d%d\n",D,F,G,D,F,G);
                                 printf("-------------\nXYZDE=%d%d%d%d%d\n,X,Y,Z,D,E);
                               }                                                          }
运行结果是:
ABCDE=29786
  DFG=  850
+ DFG=  850
-------------
XYZDE=31486

我看这个程序更适合你的,哈哈!排列有序而且运算正确无误!呵呵!

♂ 死后定当长眠,生前何须久睡。♀
2008-04-14 20:49
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
han 汗  疯狂的程序

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-14 23:12
guigezhong
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-3-3
收藏
得分:0 
好飘逸的题
2008-04-14 23:12
zyhfbim1a9
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2008-3-15
收藏
得分:0 
依照你的源程序改了那个Z,加上N个{}就可以了,呵呵
#include<stdio.h>
void main()
{
    int A,B,C,D,E,F,G,X,Y,Z;
    for(A=0;A<=9;A++)
        for(B=0;B<=9;B++){if(A==B) continue;
            for(C=0;C<=9;C++){ if(B==C||A==C) continue;
                for(D=0;D<=9;D++) {if(C==D||B==D||A==D) continue;
                    for(E=0;E<=9;E++) { if(A==E||B==E||C==E||D==E) continue;
                        for(F=0;F<=9;F++) { if(A==F||B==F||C==F||D==F||E==F)continue;
                            for(G=0;G<=9;G++)  {if(A==G||B==G||C==G||D==G||E==G||F==G) continue;
                               for(X=0;X<=9;X++)  {if(A==X||B==X||C==X||D==X||E==X||F==X||G==X) continue;
                                  for(Y=0;Y<=9;Y++) { if(A==Y||B==Y||C==Y||D==Y||E==Y||F==Y||G==Y||X==Y) continue;
                                     for(Z=0;Z<=9;Z++) { if(A==Z||B==Z||C==Z||D==Z||E==Z||F==Z||G==Z||X==Z||Y==Z) continue;
                                      if(A*10000+B*1000+C*100+D*10+E+2*(D*100+F*10+G)==X*10000+Y*1000+Z*100+D*10+E)
                                 
                                          
                                          printf("A=%dB=%dC=%dD=%dE=%dF=%dG=%dX=%dY=%dZ=%d",A,B,C,D,E,F,G,X,Y,Z);}}}}}}}}}
                                      
                    

}
2008-04-15 00:22
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
用递归写了一个
#include "stdio.h"
#define TRUE  1
#define FALSE 0

typedef unsigned char boolean;

boolean Judge(unsigned int *p[10])
{
    int c2,c3,c4,c5;

    c2=(*p[4]+*p[6]*2)/10;
    c3=(*p[3]+*p[5]*2+c2)/10;
    c4=(*p[2]+*p[3]*2+c3)/10;
    c5=(*p[1]+c4)/10;

    if(0 != (*p[6]*2)%10)
    return FALSE;

    if(0 != (*p[5]*2+c2)%10)
    return FALSE;

    if(*p[9] != (*p[2]+*p[3]*2+c3)%10)
    return FALSE;

    if(*p[8] != (*p[1]+c4)%10)
    return FALSE;

    if(*p[7] != (*p[0]+c5))
    return FALSE;

    return TRUE;
}

void guess(unsigned int n,unsigned int *p[10])
{
    unsigned int i,j,flag;
    if(0 == n)
    {
        if(TRUE == Judge(p))
        {
            printf("**************************************\n");
            printf("A\tB\tC\tD\tE\t\n");
            printf("%d\t%d\t%d\t%d\t%d\n",*p[0],*p[1],*p[2],*p[3],*p[4]);
            printf("F\tG\tX\tY\tZ\t\n");
            printf("%d\t%d\t%d\t%d\t%d\n",*p[5],*p[6],*p[7],*p[8],*p[9]);
            printf("**************************************\n");
        }
    }
    else
    {
        for(i=0;i<10;i++)
        {
            flag=TRUE;
            for(j=9;j>=n;j--)
            {
                if(i == *p[j])
                {
                    flag = FALSE;
                    break;
                }
            }
            if(FALSE == flag)
                continue;
            *p[n-1]=i;
            guess(n-1,p);
            
        }
    }
}

int main()
{
    unsigned int A,B,C,D,E,F,G,X,Y,Z;
    unsigned int *p[10];

    p[0]=&A;p[1]=&B;p[2]=&C;p[3]=&D;p[4]=&E;
    p[5]=&F;p[6]=&G;p[7]=&X;p[8]=&Y;p[9]=&Z;

    guess(10,p);
    getch();
}

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-15 00:41
张信哲
Rank: 1
等 级:新手上路
帖 子:139
专家分:0
注 册:2008-4-3
收藏
得分:0 
顶下,循环嵌套的多了,时间复杂度就无语了。呵
2008-04-15 14:22
ldywzy
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-8-12
收藏
得分:0 
我是作不出来呀
2008-04-15 14:43
快速回复:一个入门必做的题,我做了 却不知道错在那里??
数据加载中...
 
   



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

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