您的位置:首页 > 其它

046day(平均数的简化求法,递归(N皇后)的学习,拨钟问题的尝试)

2017-11-26 01:40 155 查看
172210704111-陈国佳总结《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.今天看了一道枚举题(拨钟问题):





此题要解的话,必须先确定局部,再定整体,但由于移动的类型太多,暂时想不到方法,争取明天解决;

明日计划:争取解决这题;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: