1. 程式人生 > >第七屆藍橋杯大賽個人賽省賽(軟體類)A組第三題

第七屆藍橋杯大賽個人賽省賽(軟體類)A組第三題

方格填數
如下的10個格子
±-±-±-+
| | | |
±-±-±-±-+
| | | | |
±-±-±-±-+
| | | |
±-±-±-+
(如果顯示有問題,也可以參看【圖1.jpg】)
填入0~9的數字。要求:連續的兩個數字不能相鄰。
(左右、上下、對角都算相鄰)
一共有多少種可能的填數方案?
請填寫表示方案數目的整數。
在這裡插入圖片描述
程式碼:
思路:(暴力解決)

#include <iostream>
using namespace std;
int main(int argc, char** argv) {
	int i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,n=0;
	for(i1=0;i1<=9;i1++) 
	for(i2=0;i2<=9;i2++) 
	for(i3=0;i3<=9;i3++) 
	for(i4=0;i4<=9;i4++) 
	for(i5=0;i5<=9;i5++) 
	for(i6=0;i6<=9;i6++) 
	for(i7=0;i7<=9;i7++) 
	for(i8=0;i8<=9;i8++) 
	for(i9=0;i9<=9;i9++) 
	for(i10=0;i10<=9;i10++) 
	{
	if(i2!=i1 &&i3!=i1 && i3!=i2&&i4!=i3 && i4!=i2&& i4!=i1&&
	i5!=i1&& i5!=i2&&i5!=i3&&i5!=i4&&i6!=i1&&i6!=i2&&i6!=i3&&i6!=i4&&i6!=i5
&&i7!=i1&&i7!=i2&&i7!=i3&&i7!=i4&&i7!=i5&&i7!=i6&&i8!=i1&&i8!=i2&&i8!=i3&&i8!=i4&&i8!=i5&&i8!=i6&&i8!=i7
	&&i9!=i1&&i9!=i2&&i9!=i3&&i9!=i4&&i9!=i5&&i9!=i6&&i9!=i7&&i9!=i8
	&&i10!=i1&&i10!=i2&&i10!=i3&&i10!=i4&&i10!=i5&&i10!=i6&&i10!=i7&&i10!=i8&&i10!=i9
	 )
	 {
	if(i1==i2+1||i1==i4+1||i1==i5+1||i1==i6+1
	||i2==i3+1||i2==i5+1||i2==i6+1||i2==i7+1
	||i3==i6+1||i3==i7+1
	||i4==i5+1||i4==i8+1||i4==i9+1
	||i5==i6+1||i5==i9+1||i5==i10+1||i5==i8+1
	||i6==i7+1||i6==i9+1||i6==i10+1
	||i7==i10+1
	||i8==i9+1||
	i9==i10+1||
	i1==i2-1||i1==i4-1||i1==i5-1||i1==i6-1
	||i2==i3-1||i2==i5-1||i2==i6-1||i2==i7-1
	||i3==i6-1||i3==i7-1
	||i4==i5-1||i4==i8-1||i4==i9-1
	||i5==i6-1||i5==i9-1||i5==i10-1||i5==i8-1
	||i6==i7-1||i6==i9-1||i6==i10-1
	||i7==i10-1
	||i8==i9-1||
	i9==i10-1
	)
	break;
else
	{
	n++;
}
}
}
cout<<n<<endl;
	return 0;
}

答案:1580