> 其他 >
九宫格使用C++穷举法实现,我目前的问题就是如何把1-9这个九个数字按照排列组合的方式分配到3*3
矩阵中去,不遗漏,不重复,这里的算法如何实现?
人气:283 ℃ 时间:2020-06-21 05:42:13
解答
九宫格标个号1-9个格
循环给1-9这9个数字取一个1-9的随机数
建一个长度9的数组做标记,每一个格被分配了之后就标记下,循环的时候重复了就重新给这个数分配.直到所有的9个数都被分配.
srand(time(0));
int nFlag[9]; //记录9个格是否已经被分配
int nLocation[9];//记录1-9个数的位置
memset(nFlag, 0, sizeof(int)*9);
memset(nLocation, 0, sizeof(int)*9);
for(int i = 0; i < 9; ++i)
{
nLocation[i] = rand()%10;
if(nFlag[ nLocation[i] ] == 1)
{
//如果此格被分配过则重新分配此数字位置.
i--;
}
else
{
//如果没有则分配
nFlag[i] = 1;
}
}
推荐
猜你喜欢
© 2024 79432.Com All Rights Reserved.
电脑版|手机版