| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 988 人关注过本帖
标题:[转帖]排列
只看楼主 加入收藏
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
 问题点数:0 回复次数:8 
[转帖]排列

【background】 输入n,(1<=n<=20)要求输出 n^n 个 每个长度为n的所有通过乘法原理所列举出的排列。 比如n为2时 1---1 | X | 2---2 即要求按行输出 11 12 21 22

【sample input】 3 【sample output】 111 112 113 121 122 123 131 132 133 211 212 213 221 222 223 231 232 233 311 312 313 321 322 323 331 332 333

搜索更多相关主题的帖子: 排列 转帖 
2005-01-04 20:50
ylinccax
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-1-4
收藏
得分:0 
#include&lt;stdio.h&gt;
void main()
{
int i,j,m,n;
cout&lt;&lt;"请输入你要求的数:"&lt;&lt;endl;
cin&gt;&gt;n;
if(n&gt;=1&amp;&amp;n&lt;=20)
 for(i=1;i&lt;=n;i++)
  {
   for(j=1;j&lt;=n;j++)
   {
    for(m=1;m&lt;=n;m++)
     cout&lt;&lt;i&lt;&lt;j&lt;&lt;m&lt;&lt;endl;
   }
  }
 else
    cout&lt;&lt;"输入错误,请重新输入!~"
    cout&lt;&lt;endl;
reutrn 0;
}

只是做了一下,不知对错!~

发誓过! 为发誓而努力 努力过必定是成功!
2005-01-05 18:34
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
得分:0 
以下是引用ylinccax在2005-1-5 18:34:03的发言: #include<stdio.h> void main() { int i,j,m,n; cout<<"请输入你要求的数:"<<endl; cin>>n; if(n>=1&&n<=20) for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { for(m=1;m<=n;m++) cout<<i<<j<<m<<endl; } } else cout<<"输入错误,请重新输入!~" cout<<endl; reutrn 0; } 只是做了一下,不知对错!~
不管n输入为多少,输出一直是三位数,不合题意。 不过不管怎样很欣赏你的勇于尝试精神,这儿的论坛现在就是缺少这种精神,可悲可叹!

2005-01-05 23:18
ylinccax
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-1-4
收藏
得分:0 
#include&lt;stdio.h&gt;
void main()
{
int i,j,m,n,c;
cout&lt;&lt;"请输入你要求的数:"&lt;&lt;endl;
cin&gt;&gt;n;
if(n&gt;=1&amp;&amp;n&lt;=20)
 for(i=1;i&lt;=n;i++)
  {
   for(j=1;j&lt;=n;j++)
   {
    for(m=1;m&lt;=n;m++)
     cout&lt;&lt;i&lt;&lt;j&lt;&lt;m;
     c=c+1
     if(n=c)
    cout&lt;&lt;endl;
   }
  }
 else
    cout&lt;&lt;"输入错误,请重新输入!~"
    cout&lt;&lt;endl;
reutrn 0;
}

看看这下!~

发誓过! 为发誓而努力 努力过必定是成功!
2005-01-06 07:43
ylinccax
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-1-4
收藏
得分:0 
晕哈,刚学不知道怎样

做错了,不要见笑哈!~

发誓过! 为发誓而努力 努力过必定是成功!
2005-01-06 07:44
ylinccax
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-1-4
收藏
得分:0 
cout&lt;&lt;i&lt;&lt;j&lt;&lt;m;
     c=c+1
     if(n=c)              //不知道这地方是不是少了一个大括号;
  {
    cout&lt;&lt;endl;
  }
 
我没上机去实践

我是凭感觉做的

如果谁有C++给我传一下好不

在此感激不尽!~谢了!~


发誓过! 为发誓而努力 努力过必定是成功!
2005-01-06 08:00
ylinccax
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2005-1-4
收藏
得分:0 
我晕!~

应该是     “if(n==c)”

发誓过! 为发誓而努力 努力过必定是成功!
2005-01-06 18:09
lcf
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2004-10-10
收藏
得分:0 

#include <iostream> using namespace std; int main() { int n; cin>>n; int a[n]; for(int i=0;i<n;i++) {a[i]=1;} int count=1; for(int i=0;i<n;i++) {count=count*n;} for(int j=0;j<count;j++) { for(int j=n-1;j>=0;j--) { if(a[j]==(n+1)&&(j-1)>=0) { a[j-1]++; for(int k=j;k<n;k++) {a[k]=1;} } } for(int p=0;p<n;p++) {cout<<a[p];} cout<<endl; a[n-1]++; } }

2005-01-11 23:46
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 

#include <iostream> #include <math.h> using namespace std; void poppy(int n,int shu) { int temp; for(int i=1;i<=n;i++) { temp=shu*10+i; if (temp/pow(10,n-2)<10) poppy(n,temp); else cout<<temp<<'\t'; } }

void main() { int n; cin>>n; for (int i=1;i<=n;i++) poppy(n,i); cout<<endl; } 刚刚起来做的 可以输入任何数 请指教


动于心而静如水
2005-01-12 11:28
快速回复:[转帖]排列
数据加载中...
 
   



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

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