有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?用C++编

 我来答
云林之盟
2013-06-26 · 涵盖汽车、软件、医学等全方位知识体系
云林之盟
采纳数:166 获赞数:523

向TA提问 私信TA
展开全部
#include <iostream>

#include <stdio.h>

#include <vector>

#include <list>

#include <stack>

#include <queue>

#include <map>

#include <set>

#include <string>

#include <deque>

using namespace std;

int main()
{
  
int a[4],n=4*4,i=0,k,total=0,num=0;

 vector<int> temp,temp2;

 for(i=1;i<=4;i++)

  a[i-1]=i;

 for(i=0;i<n;i++)

 {

  k=i;

  num=0;

  while(k)

  {

   if(k%2==1)

    num++;

   k=k/2;

  }

  if(num==3)

   temp.push_back(i);

 }

 vector<int>::iterator pos,pos2,pos3,pos4;

 for(pos=temp.begin();pos!=temp.end();++pos)

 {

  k=*pos;

  num=0;

  temp2.clear();

  while(k)

  {

   if(k%2==1)

    temp2.push_back(num);

   num++;

   k=k/2;

  }

  for(pos2=temp2.begin();pos2!=temp2.end();++pos2)

  {

   for(pos3=temp2.begin();pos3!=temp2.end();++pos3)

   { 

    if(*pos3==*pos2)

     continue;

    for(pos4=temp2.begin();pos4!=temp2.end();++pos4)

    {

     if(*pos4==*pos3 || *pos4==*pos2)

      continue;

     cout<<a[*pos2]<<a[*pos3]<<a[*pos4]<<"  ";

     total++;

    }

   }

  }

  cout<<endl;

 }

 cout<<"In all it have "<<total<<" numbers."<<endl;
 return 0;
  }
455707843
推荐于2016-12-01 · TA获得超过1298个赞
知道小有建树答主
回答量:317
采纳率:50%
帮助的人:128万
展开全部
#include <iostream>

using namespace std;

int main()
{
int num = 0;
for (int i = 1; i <= 4; i++)
{
for (int j = 1; j <= 4; j++)
{
for (int k = 1; k <= 4; k++)
{
if (i != j && j != k && i != k)
{
num++;
cout << i << j << k << endl;
}
}
}
}

cout << num << endl;
return 0;
}

现编的,没编译,自行编译。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式