只用C++循环,不用递归,如何让穷举1234这四个数字或者说是字符的排列组合?

只用C++循环,不用递归,如何让穷举1234这四个数字或者说是字符的排列组合?比如像123443211342这样,求来回调换的组合的数目,用循环怎么编写... 只用C++循环,不用递归,如何让穷举1234这四个数字或者说是字符的排列组合?
比如像
1234
4321
1342
这样,求来回调换的组合的数目,用循环怎么编写
展开
 我来答
沧海雄风2009
2011-11-17 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2861万
展开全部
1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 2413 2431 3124 3142 3214 3241
3412 3421 4123 4132 4213 4231 4312 4321 一共有24个
Press any key to continue

#include <iostream>
using namespace std;
main()
{
int i,j,k,l,cnt=0;
for (i=1;i<=4;i++)
{
for (j=1;j<=4;j++)
{
for (k=1;k<=4;k++)
{
for (l=1;l<=4;l++)
{
if ( i!=j && i!=k && i!=l
&& j!=k && j!=l
&& k!=l )

{
cout<<i<<j<<k<<l<<" ";
cnt++;
}
}
}
}
}
cout<<"一共有"<<cnt<<"个\n";
}
有问题请追问 满意记得采纳
更多追问追答
追问
如果这四个字符是可以任意指定的呢?
比如四个字符都是1
或者1222
这种情况该怎么办?
追答
那就把我的if判断去掉  全排列

我的if判断是去掉 重复的 比如1122 1321 3334 这种
terranlong
2011-11-17 · TA获得超过7294个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:4005万
展开全部
#include <iostream>
using namespace std;
void main()
{
int a, b, c, d;
for (a = 1; a <= 4; ++a)
{
for (b = 1; b <= 4; ++b)
{
if (a == b)
{
continue;
}
for (c = 1; c <= 4; ++c)
{
if (a == c || b == c)
{
continue;
}
for (d = 1; d <= 4; ++d)
{
if (a == d || b == d || c == d)
{
continue;
}
cout << a << b << c << d << endl;
}
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
8980353
2011-11-17 · TA获得超过318个赞
知道答主
回答量:22
采纳率:0%
帮助的人:23.9万
展开全部
#include<iostream>
using namespace std;
int main(){
int n,i=0,j,k,l,m,count=0;
int a[10];
cout<<"请输入一个4位数:"<<endl;
cin>>n;
while(n!=0)
{
m=n%10;
a[i++]=m;
n/=10;
}
for(j=0;j<i;j++)
for(k=0;k<i;k++)
if(j!=k)
for(l=0;l<i;l++)
if(l!=j&&l!=k)
for(m=0;m<i;m++)
if(m!=j&&m!=k&&m!=l)
{
cout<<a[j]<<a[k]<<a[l]<<a[m]<<endl;
count++;
}
cout<<"排列个数为"<<count;

cout<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
29...4@qq.com
2011-11-17 · TA获得超过124个赞
知道答主
回答量:308
采纳率:0%
帮助的人:148万
展开全部
纠正一下: C24 = 4!/2!/2! = 6 n,m 是可以任意输入的,你还要什么然后用循环去穷举,用递归也可以,不过难以理解 用深度优先算法,递归。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式