当前位置: > 九宫格使用C++穷举法实现,我目前的问题就是如何把1-9这个九个数字按照排列组合的方式分配到3*3...
题目
九宫格使用C++穷举法实现,我目前的问题就是如何把1-9这个九个数字按照排列组合的方式分配到3*3
矩阵中去,不遗漏,不重复,这里的算法如何实现?

提问时间:2020-11-03

答案
九宫格标个号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;
}
}
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
版权所有 CopyRight © 2012-2019 超级试练试题库 All Rights Reserved.