Nqueen1.0

Nqueen.h

#include<vector>
using namespace std;
extern int solutionNum;
void solveNqueen(int row,vector<int> &v,int N);
bool checkPosition(int row,int col,vector<int> &v);
void printSolution(vector<int> &v);

Nqueen.cpp

#include"Nqueen.h"
#include<iostream>
#include<vector>
using namespace std;

void solveNqueen(int row,vector<int> &v,int N){
    for(int col=0;col<N;col++){
        if(checkPosition(row,col,v)){
            v[row]=col;
            if(row==N-1){
                ++solutionNum;
                //printSolution(v);
                return;
            }
            solveNqueen(row+1,v,N);
        }
    }

}

bool checkPosition(int row,int col,vector<int> &v){
    for(int x=0;x<row;++x){
        if(abs(row-x)==abs(col-v[x])||col==v[x])
            return 0;
    }
    return 1;
}

void printSolution(vector<int> &v){
    cout<<solutionNum<<":::"<<endl;
    for(auto p:v)
        cout<<p<<'\t';
    cout<<endl;
}

main.cpp

#include"Nqueen.h"
#include<iostream>
#include<vector>
using namespace std;

int solutionNum=0;

int main(){
    int N;
    cout<<"please input the value of N:"<<endl;
    cin>>N;
    vector<int> v(N);
    solveNqueen(0,v,N);
    cout<<"The total solition number is::"<<solutionNum<<endl;
    return 0;
}
#include <stdio.h> int main() { int day, month, year; scanf("%d", &year); for(month = 1; month <= 12; month++){ switch ( month 1 分 ){ case 2: if((year % 4 == 0 && year % 100 != 0)||year % 400 == 0 ) { day = 29; }else{ day = 28; } break; case 1:case 3:case 5:case 7:case 8:case 10:case 12: 1 分 : day = 31; break; case 4:case 6:case 9:case 11: 1 分 : day = 30; break; } printf("%d ", day) ; } return 0; } 收起 放大 全屏 复制  5-13 分数 3 显示扑克牌[2] 作者 颜晖 单位 浙大城市学院 在玩牌程序中,每一组牌用数字113代表。输入数字,显示相应的牌。其中2〜10直接显示数字,而数字11112、13则分别用Ace、Jack、Queen、King来表示。 #include <stdio.h> int main() { int n; scanf("%d", &n); if(n >= 1 && n <= 13){ switch ( undefined 1 分 ){ case 1: undefined 1 分 case 11: printf("Jack\n"); break; case 12: printf("Queen\n"); break; case 13: printf("King\n"); break; default: undefined 1 分 } }else{ printf("Error\n"); } return 0; } 收起 放大 全屏 复制  5-14 分数 3 写出与for语句等价的while语句[2] 作者 颜晖 单位 浙大城市学院 请写出与以下for语句等价的while语句。 for (fahr = lower; fahr<= upper; fahr++){ celsius = (5.0 / 9.0) * (fahr - 32); printf("%4d%6.1f\n", fahr, celsius); } 收起 放大 全屏 复制 undefined 1 分 ; while (fahr<= upper){ undefined 1 分 ; printf("%4d%6.1f\n", fahr, celsius); undefined 1 分 ; } 收起 放大 全屏 复制  5-15 分数 3 写出使用格里高利公式求π的近似值的等价程序段 作者 颜晖 单位 浙大城市学院 请将程序段B补充完整,使其与程序段A等价。 /* 程序段A */ flag = 1; denominator = 1; item = 1.0; pi = 0; while(fabs(item) >= 0.0001){ item = flag * 1.0 / denominator; pi = pi + item; flag = -flag; denominator = denominator + 2; } pi = pi * 4; 收起 放大 全屏 复制 /* 程序段B */ flag = 1; denominator = 1; item = 1.0; pi = 0; while(fabs(item) >= 0.0001){ undefined 1 分 ; flag = -flag; denominator = denominator + 2; undefined 1 分 ; } undefined 1 分 ; pi = pi * 4; 收起 放大 全屏 复制  保存
最新发布
10-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值