| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 430 人关注过本帖
标题:超级菜鸟的答案
只看楼主 加入收藏
smsand
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-11-10
收藏
 问题点数:0 回复次数:2 
超级菜鸟的答案

4. 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅
出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。
编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。

1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4

#include<iostream>

using namespace std;
void circle(int [],int );
int main()
{int i,x,*p;
cout<<"enter the num";
cin>>i;
p=new int[i];
for(x=0;x<=i-1;++x)
p[x]=x+1;for(x=0;x<=i;++x){
if(p[x]==-33686019)
cout<<" ";
else
cout<<p[x]<<" ";}cout<<endl;
for(x=0;x<=i-1;++x)
circle(p ,i );system("pause");
}
void circle(int p[],int i)
{
int temp,x;

temp=p[0];
for(x=1;x<=i;++x)
p[x-1]=p[x];
p[i]=temp;
for(x=0;x<=i;++x)
{if(p[x]==-33686019)
cout<<"";
else
cout<<p[x]<<" ";}
cout<<endl;
}
大虾给点意见

搜索更多相关主题的帖子: 超级 
2006-11-10 22:50
smsand
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-11-10
收藏
得分:0 
晕 忘了删内存了
2006-11-10 22:51
smsand
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-11-10
收藏
得分:0 
晕,数组多跑了1步      关于这个问题有其他方法吗
2006-11-11 11:59
快速回复:超级菜鸟的答案
数据加载中...
 
   



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

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