《2017年11月26日》【连续046天】
标题:平均数的简化求法,递归(N皇后)的学习,拨钟问题的尝试;
内容:A.写一个平均数求法,要求不用数组,以0结束:
int main()
{
int n,N,average,NUM=0;
for(N=1;;N++){
cin>>n;
if(n==0)break;
NUM +=n;
}
average=NUM/N;
cout<<"average="<<average<<endl;
return 0;
}
此方法可以省去存储数组所要分配的空间;
B.N皇后问题:输入整数n,要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,输出全部方案;
(注:皇后可直斜横直接吃子,且格数不限)
例:先定义一个queens数组;
void NQueen(int k,int N) //在0~k-1行皇后已经摆好的情况下,摆第k行及以后的皇后
{
int i;
if(k==N){ //已摆好N个皇后
for(i=0;i<N;++i)
cout<<queens[i] +1<<" ";
cout<<endl;
return ;
}
for(i=0;i<N;++i){
int j;
for(j=0;j<k;j++){
if(queens[j]==i||abs(queens[j]-i)==abs(k-j))
break;
}
if(j==k){ //当j==k时,说明i经过了整个循环;
queens[k]=i;
NQueen(k+1,N);
}
}
}
使用此函数,只要把K换成0;
C.今天看了一道枚举题(拨钟问题):


此题要解的话,必须先确定局部,再定整体,但由于移动的类型太多,暂时想不到方法,争取明天解决;
明日计划:争取解决这题;
本文探讨了简化平均数求法的方法,介绍了N皇后问题的递归解决方案,并提到了一个待解决的枚举问题——拨钟问题。

被折叠的 条评论
为什么被折叠?



