欢迎来到皮皮网网首页

【动漫图床源码】【在线礼佛源码】【手机提取apk源码】国际象棋软件源码_国际象棋软件源码下载

来源:小京东分期源码 时间:2024-11-06 11:31:02

1.�����������Դ��
2.题目:要求输出国际象棋棋盘。国际国际 1.程序分析:用i控制行,象棋象棋下载j来控制列,软件软件根据i+j的源码源码动漫图床源码和的变化来控制输出黑方格,
3.二级C语言

国际象棋软件源码_国际象棋软件源码下载

�����������Դ��

       代码如下:

#include <iostream>

       #include <cstdio>

       #define UINT unsigned int

       #define ULL unsigned long long

       #define MAXN ;

       using namespace std;

       int N,国际国际ans,minstep;

       UINT Row,Col;

       UINT Lft,Rgt;

       inline UINT lowbit(UINT x){

           return x&(-x);

       }

       bool check(){

           UINT tR=~Row,tC;

           UINT curR,curC;

           while(tR){

               curR=lowbit(tR);

               tR ^= curR;

               tC = ~Col;

               while(tC){

                   curC=lowbit(tC);

                   tC^=curC;

                   if((Rgt & (curR*curC))!=0 || (Lft & ((1<<(N-1))/curR*curC))!=0)

                       continue;

                   return false;

               }

           }

           return true;

       }

       void dfs(int row,int used,UINT col,UINT dig,UINT adg){

           if(used>minstep)

               return;

           if(row == N){

               if(check()){

                   if(used < minstep){

                       minstep = used;

                       ans=0;

                   }

                   ans++;

               }

               return;

           }

           UINT status=~(col|dig|adg);

           UINT binRow=(1<<row);

           while(status){

               UINT t=status&(-status);

               Col^=t;

               Row^=binRow;

               Lft^=((1<<(N-1))/binRow*t);

               Rgt^=(binRow*t);

               dfs(row+1,used+1,(t|col),(t|dig)>>1,(t|adg)<<1);

               Col^=t;

               Row^=binRow;

               Lft^=((1<<(N-1))/binRow*t);

               Rgt^=(binRow*t);

               status^=t;

           }

           dfs(row+1,used,col,dig>>1,adg<<1);

       }

       int main(){

           while(cin>>N){

               UINT col=(1<<N)-1;

               col=~col;

               ans=0;

               minstep=N+1;

               Row=Col=col;

               Rgt=Lft=0;

               dfs(0,0,col,0,0);

               cout<<minstep<<endl<<ans<<endl;

           }

           return 0;

       }

题目:要求输出国际象棋棋盘。 1.程序分析:用i控制行,象棋象棋下载在线礼佛源码j来控制列,软件软件根据i+j的源码源码和的变化来控制输出黑方格,

       前面的国际国际部分你应该能看懂吧,就是象棋象棋下载按行循环一共8行,每行循环8次,软件软件就是源码源码全部的格棋盘了,如果行跟列的国际国际手机提取apk源码和是个偶数,就显示ASCII表中的象棋象棋下载第个字符,如果不是软件软件则以空格代替,这样就能显示出交错的28日付源码棋盘。

       ASCII表第个字符是"Û",也就是"U"上头有一个"^"符号。这是android 高仿 源码一个拉丁字母。方便拼读。但你看下我给你留的参考资料里面的推荐答案,实际上整体效果是国际象棋的棋盘~

       补充一下:像这种专业背景的题目要有加分才会有人帮你回答的~

二级C语言