搜索
查看: 1178|回复: 4
打印 上一主题 下一主题

三角形 相加相等问题(P130 更进一步)

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-16 11:01:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
用1-6这6个自然数组成一个三角形并让这个三角形三条边的值之和相等
例如:图片上数字分别为5+3+4=4+2+6=6+1+5=12
请输出所有可能  
表示不会啊···{:soso_e149:}求大神解答
用的函数表太多我很多都还没学·····看不懂

QQ截图20150816105832.png (5.48 KB, 下载次数: 2)

QQ截图20150816105832.png

最佳答案

查看完整内容

最简单的方法就是一个一个试呗,例如用for循环。下面这段我试着输出可能有点问题,人不聪明你将就看吧,反正就这个意思。 #include #include int main() { int a,b,c,d,e,f; //对应的6个值,顺序什么的随便 for(a=1;a
沙发
发表于 2015-8-16 11:01:09 | 只看该作者
最简单的方法就是一个一个试呗,例如用for循环。下面这段我试着输出可能有点问题,人不聪明你将就看吧,反正就这个意思。
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,d,e,f;                       //对应的6个值,顺序什么的随便
   
    for(a=1;a<=6;a++)                 //笨办法开始啦,一个一个循环
    {
                for(b=1;b<=6;b++)
        {
                        for(c=1;c<=6;c++)
            {
                                for(d=1;d<=6;d++)
                {
                                        for(e=1;e<=6;e++)
                    {
                                                for(f=1;f<=6;f++)
                        {
                                                        if(a+b+c==c+d+e  &&  a+b+c==a+e+f)
                                                                printf("%d %d %d %d %d %d %d\n",a,b,c,d,e,f);
                           
                        }
                    }
                }
            }
        }
    }
        system("pause");
        return 0;
}
板凳
发表于 2015-8-16 17:41:22 | 只看该作者
讲一下思路,一个数组a[6],里面是各个圆圈里的数,之后开始123456的全排列,最后判断是否成立。
这里的重点在于全排列以及数组对应的圆圈里的数,我们可以将最上面那个数为a[0],之后顺时针依次为a[1],a[2]......那么三角形的三边就可以用数组表示啦ww
我是月影,希望能够帮助到你啦wwwww

点评

觉得好的话,请点击选为最佳答案!  发表于 2015-8-16 17:42
地板
发表于 2017-7-18 17:08:22 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
int main()
{
          int a,b,c,d,e,f;
       printf("A B C D E F \n");
        printf("----------- \n");
      for(a=1;a<=6;a++)
      {
                  for(b=1;b<=6;b++)
          {
                                for(c=1;c<=6;c++)
                                {
                                        for(d=1;d<=6;d++)
                    {
                                                for(e=1;e<=6;e++)
                        {
                                                        for(f=1;f<=6;f++)
                            {
                                                        if (   a!=b
                                                                && a!=c
                                && a!=d
                                && a!=e
                                && a!=f
                                
                                && b!=c
                                && b!=d
                                && b!=e
                                && b!=f
                                
                                && c!=d
                                && c!=e
                                && c!=f
                                
                                && d!=e
                                && d!=f
                                
                                && e!=f        )
                                {
                                                                         
                                    
                                                                        if(12==a+b+c  && 12==c+d+e  &&   12==e+f+a)
                                    
                                    
                                    
                                                                        printf("%d %d %d %d %d %d \n",a,b,c,d,e,f);
                                    
                                    
                                   
                                    
                                }
                        }
                    }
                }
          }
      }
}

      
      
        system("pause");
        return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表