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

本文探讨了简化平均数求法的方法,介绍了N皇后问题的递归解决方案,并提到了一个待解决的枚举问题——拨钟问题。

《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.今天看了一道枚举题(拨钟问题):

这里写图片描述

这里写图片描述

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

 

明日计划:争取解决这题;

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值