五边形——每条直线相加之和均为38

题目:

528ae57bb35742a4a0bb0fd7b29ec049.jpeg

将这十九个数放到十九个圈圈中,且这十九个数不能重复。只能在tiaojian的方法体加东西,其他地方不能做改动。

#include  <iostream>
#incllude<set>

using  namespace  std;
  int  a[19];
  void  tiaojian()
  {
  	a[16] = 15;
	a[17] = 13;
	a[18] = 10;
	a[0] = 38-a[1]-a[16];
	  if(a[0] < 1 || a[0] > 19) return ;
	a[8] = 38-a[5]-a[18];
	  if(a[8] < 1 || a[8] > 19) return ;
	  


//输出格式如下:  可以复制以后修改
  //        cout  <<  a[  ]<<"  "  <<  a[  ]<<"  "  <<  a[  ]<<"  "  <<  a[  ]<<"  "  <<  a[  ]  <<  endl;
              
  }
int  main()
{
    for(  a[1]  =1  ;  a[1]<=19  ;  a[1]++)
            for(  a[2]  =1  ;  a[2]<=19  ;  a[2]++)
                    for(  a[3]  =1  ;  a[3]<=19  ;  a[3]++)
                            for(  a[4]  =1  ;  a[4]<=19  ;  a[4]++)
                                    for(  a[5]  =1  ;  a[5]<=19  ;  a[5]++)
                                    {
                                              tiaojian();
                                    }
  
      return  0;
}

程序代码:

#include  <iostream>
using  namespace  std;
int  a[19];
  
void  tiaojian()
  {
  	a[16] = 15;
	a[17] = 13;
	a[18] = 10;	
		
	a[0] = 38-a[1]-a[16];
	  if(a[0] < 1 || a[0] > 19||a[0]==a[1]||a[0]==a[2]||a[0]==a[3]||a[0]==a[4]||a[0]==a[5]||a[0]==a[16]||a[0]==a[17]||a[0]==a[18]) return ;
	  
	a[8] = 38-a[5]-a[18];
	  if(a[8] < 1 || a[8] > 19||a[8]==a[1]||a[8]==a[2]||a[8]==a[3]||a[8]==a[4]||a[8]==a[5]||a[8]==a[0]||a[8]==a[16]||a[8]==a[17]||a[8]==a[18]) return ;
	
	if(a[1]+a[2]+a[3]+a[4]+a[5]==38&&a[1]!=a[2]&&a[1]!=a[3]&&a[1]!=a[4]&&a[1]!=a[5]&&a[2]!=a[3]&&a[2]!=a[4]&&a[2]!=a[5]&&a[3]!=a[4]&&a[3]!=a[5]&&a[4]!=a[5]&&a[1]!=a[16]&&a[1]!=a[17]&&a[1]!=a[18]&&a[2]!=a[16]&&a[2]!=a[17]&&a[2]!=a[18]&&a[3]!=a[16]&&a[3]!=a[17]&&a[3]!=a[18]&&a[4]!=a[16]&&a[4]!=a[17]&&a[4]!=a[18]&&a[5]!=a[16]&&a[5]!=a[17]&&a[5]!=a[18])
	for(  a[6]  =1  ;  a[6]<=19  ;  a[6]++){
			if(a[6]==a[1]||a[6]==a[2]||a[6]==a[3]||a[6]==a[4]||a[6]==a[5]||a[6]==15||a[6]==13||a[6]==10)	continue ;	
			a[9] = 38-a[17]-a[6]-a[2];
				if(a[9] < 1 || a[9] > 19||a[9]==a[1]||a[9]==a[2]||a[9]==a[3]||a[9]==a[4]||a[9]==a[5]||a[9]==a[6]||a[9]==15||a[9]==13||a[9]==10) continue ;
			a[7] = 38-a[0]-a[6]-a[8];
				if(a[7] < 1 || a[7] > 19|| a[7]==a[1]||a[7]==a[2]||a[7]==a[3]||a[7]==a[4]||a[7]==a[5]||a[7]==a[6]||a[7]==a[9]||a[7]==15||a[7]==13||a[7]==10) continue ;
			a[13] = 38-a[1]-a[9];
				if(a[13] < 1 || a[13] > 19|| a[13]==a[1]||a[13]==a[2]||a[13]==a[3]||a[13]==a[4]||a[13]==a[5]||a[13]==a[6]||a[13]==a[9]||a[13]==a[7]||a[13]==15||a[13]==13||a[13]==10) continue ;
			a[10] = 38-a[16]-a[7]-a[13];
				if(a[10] < 1 || a[10] > 19|| a[10]==a[1]||a[10]==a[2]||a[10]==a[3]||a[10]==a[4]||a[10]==a[5]||a[10]==a[6]||a[10]==a[9]||a[10]==a[7]||a[10]==a[13]||a[10]==15||a[10]==13||a[10]==10) continue ;
			a[12] = 38-a[17]-a[7]-a[4];
				if(a[12] < 1 || a[12] > 19||a[12]==a[1]||a[12]==a[2]||a[12]==a[3]||a[12]==a[4]||a[12]==a[5]||a[12]==a[6]||a[12]==a[9]||a[12]==a[7]||a[12]==a[13]||a[12]==a[10]||a[12]==15||a[12]==13||a[12]==10) continue ;
			a[15] = 38-a[5]-a[12];
				if(a[15] < 1 || a[15] > 19||a[15]==a[1]||a[15]==a[2]||a[15]==a[3]||a[15]==a[4]||a[15]==a[5]||a[15]==a[6]||a[15]==a[9]||a[15]==a[7]||a[15]==a[13]||a[15]==a[10]||a[15]==a[12]||a[15]==15||a[15]==13||a[15]==10) continue ;
			a[14] = 38-a[13]-a[15];
				if(a[14] < 1 || a[14] > 19||a[14]==a[1]||a[14]==a[2]||a[14]==a[3]||a[14]==a[4]||a[14]==a[5]||a[14]==a[6]||a[14]==a[9]||a[14]==a[7]||a[14]==a[13]||a[14]==a[10]||a[14]==a[12]||a[14]==a[15]||a[14]==15||a[14]==13||a[14]==10) continue ;
			a[11] = 38-a[14]-a[4]-a[8];
				if(a[11] < 1 || a[11] > 19||a[11]==a[1]||a[11]==a[2]||a[11]==a[3]||a[11]==a[4]||a[11]==a[5]||a[11]==a[6]||a[11]==a[9]||a[11]==a[7]||a[11]==a[13]||a[11]==a[10]||a[11]==a[12]||a[11]==a[15]||a[11]==a[14]||a[11]==15||a[11]==13||a[11]==10){
					continue ;
				} else{
					cout  <<  a[1]<<"  "  <<  a[ 2 ]<<"  "  <<  a[ 3 ]<<"  "  <<  a[ 4 ]<<"  "  <<  a[ 5 ]  <<  endl;
				}	
	}           
}

int  main()
{	
    for(  a[1]  =1  ;  a[1]<=19  ;  a[1]++)
            for(  a[2]  =1  ;  a[2]<=19  ;  a[2]++)
                    for(  a[3]  =1  ;  a[3]<=19  ;  a[3]++)
                            for(  a[4]  =1  ;  a[4]<=19  ;  a[4]++)
                                    for(  a[5]  =1  ;  a[5]<=19  ;  a[5]++)
                                    {
                                        tiaojian();
                                    }
  
      return  0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值