| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 471 人关注过本帖, 1 人收藏
标题:n后问题,求个输出好看的格式,棋盘格式的最好,求帮助!
只看楼主 加入收藏
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
结帖率:75%
收藏(1)
已结贴  问题点数:20 回复次数:1 
n后问题,求个输出好看的格式,棋盘格式的最好,求帮助!
#include <iostream>
using namespace std;
int count=0;
void Output(int n,int *a)
{    int **b;
    count++;
    int i;    b=new int *[n];
    cout<<"第"<<count<<"解:"<<endl;
    for(i=1;i<=n;i++)
    {b[i]=new int [n];
        b[i][a[i]]=1;
    }

    for(int s=1;s<=n;s++)
    {    int c=0;
        for(i=1;i<=n;i++)
        {    c++;
            
            if(b[s][i]==1)
                cout<<"*";
            else
                cout<<"O";
                if(c%n==0)
        cout<<endl;
        }

    }
}
bool find(int *a,int i,int k)
{ int j=1;
    while(j<k)
    {if((a[j]==i)||(abs(a[j]-i)==abs(j-k)))
        return false;
    j++;
    }
    return true;
}
void Quen(int k,int n,int *a)
{if(k>n)
    Output(n,a);
    else
        for(int i=1;i<=n;i++)
            if(find(a,i,k))
            {a[k]=i;
                Quen(k+1,n,a);
            }
}


int main()
{    int n;
    int *a;
    cout<<"皇后问题:"<<endl;
    cin>>n;
    a=new int [n];
    cout<<n<<"皇后问题求解如下:"<<endl;
    Quen(1,n,a);
    return 0;
}
搜索更多相关主题的帖子: void include count 最好 
2012-12-10 12:31
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:20 
#include <iostream>
using namespace std;
int count=0;
void Output(int n,int *a)
{    int **b;
    count++;
    int i;    b=new int *[n];
    cout<<"第"<<count<<"解:"<<endl;
     cout<<"------------------ "<<endl;
    for(i=1;i<=n;i++)
    {
        b[i]=new int [n];
        b[i][a[i]]=1;
    }
     
   
    for(int s=1;s<=n;s++)
    {    int c=0;
         cout<<"  ";
        for(i=1;i<=n;i++)
        {    c++;
         
            if(b[s][i]==1)
            {
                cout<<"★";
               
            }
            else
            {
            if((s+i)%2==0) cout<<"  ";

            else cout<<"■";
            }
               if(c%n==0)
        
        cout<<endl;
   
        }
   
           }
   
}
bool find(int *a,int i,int k)
{ int j=1;
    while(j<k)
    {if((a[j]==i)||(abs(a[j]-i)==abs(j-k)))
        return false;
    j++;
    }
    return true;
}
void Quen(int k,int n,int *a)
{if(k>n)
    Output(n,a);
    else
        for(int i=1;i<=n;i++)
            if(find(a,i,k))
            {a[k]=i;
                Quen(k+1,n,a);
            }
}


int main()
{    int n;
    int *a;
    cout<<"皇后问题:"<<endl;
    cin>>n;
    a=new int [n];
    cout<<n<<"皇后问题求解如下:"<<endl;
    Quen(1,n,a);
    return 0;
}


[ 本帖最后由 qunxingw 于 2012-12-12 20:52 编辑 ]

www.qunxingw.wang
2012-12-12 20:42
快速回复:n后问题,求个输出好看的格式,棋盘格式的最好,求帮助!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015470 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved