早教吧作业答案频道 -->其他-->
如图所示的8个格子中要填入1至8的数字,使得相邻的和对角线的数字之差不为1。试编写一个找出所有放法的程序THANKS代码~
题目详情
如图所示的8个格子中要填入1至8的数字,使得相邻的和对角线的数字之差不为1。试编写一个找出所有放法的程序THANKS 代码~
▼优质解答
答案和解析
#include #include "math.h" void Swap(int& a, int& b) { int temp = a; a = b; b = temp; } void Perm(int list[], int k, int m) { int i; if (k == m) { if(abs(list[1]-list[4])!=1 && abs(list[0]-list[2])!=1 && abs(list[2]-list[5])!=1 && abs(list[5]-list[7])!=1 && abs(list[3]-list[6])!=1 && abs(list[1]-list[2])!=1 && abs(list[2]-list[3])!=1 && abs(list[4]-list[5])!=1 && abs(list[5]-list[6])!=1 && abs(list[0]-list[1])!=1 && abs(list[0]-list[3])!=1 && abs(list[1]-list[5])!=1 && abs(list[2]-list[4])!=1 && abs(list[2]-list[6])!=1 && abs(list[3]-list[5])!=1 && abs(list[4]-list[7])!=1 && abs(list[6]-list[7])!=1) { for(i=0;i<=m;i++) printf("%d ",list[i]); printf("\n"); } } else for (i=k; i <= m; i++) { Swap (list[k], list[i]); Perm (list, k+1, m); Swap (list [k], list [i]); } } int main() { int s[]={1,2,3,4,5,6,7,8}; Perm(s, 0, 7); return 0; }
看了 如图所示的8个格子中要填入1...的网友还看了以下:
一道数学题:成一圈,使任意两个相邻数字的差等于2或3?能否把1~10这十个数排成一圈使任意两个相邻 2020-05-13 …
下面是一个8位数,每3个相邻数字之和都是15,你知道△表示的数字是几吗?下面是一个8位数,每3个相 2020-05-13 …
下面是一个8位数,每3个相邻数字之和都是15,你知道△表示的数字是几吗?下面是一个8位数,每3个相 2020-05-13 …
在Excel中,求显示余数,32除以8余数为0,显示余数时也为0,要求显示为8如何做?在Excel 2020-05-17 …
布雷,m*n模拟“地雷游戏”。在M*N的方格中,随机布上dn个“地雷”,按M行N列输出各格子的数( 2020-05-17 …
1.A、B、C、D、E表示5个互不相同的正整数.将这5个数排成一排,如果其中任意相邻的三个数之和都 2020-06-15 …
凑出得数12345=200,任意加上加减乘除括号,也可以将几个相邻数字合起来.12345=200, 2020-06-20 …
举一反三.(周期问题有分加)下面是一个8位数,每3个相邻数字之和都是14,你知道问号表示的数字是几 2020-07-08 …
如果两个位数相同的自然数恰好只有某一位数上的数字不相同,则称这两个数为相邻数,例如:123与103 2020-07-24 …
求助,在线等.excel中找出一行6个数中的相邻数.每行6个数,在I4到N4之间从小到大排列,要找出 2020-11-01 …