主题:C++的一道简单程序题
xuexinlong
[专家分:0] 发布于 2008-06-24 15:44:00
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
回复列表 (共15个回复)
沙发
wpt01 [专家分:0] 发布于 2008-06-28 19:17:00
#include<iostream>
using namespace std;
void main()
{
int i,j,m,n,k=0;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(m=1;m<=4;m++)
for(n=1;n<=4;n++)
{
if(i==j||i==m||i==n||j==n||j==m||m==n)
;
else
k++;
cout<<i<<j<<m<<n<<endl;
}
cout<<k<<endl;//总共的个数
}
板凳
scumar [专家分:0] 发布于 2008-06-29 11:25:00
#include <iostream>
using namespace std;
int main()
{
int count=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)
{
cout<<i<<j<<k<<endl;
count++;
}
cout<<"total: "<<count<<endl;
return 0;
}
3 楼
ruixiazi [专家分:0] 发布于 2008-06-29 19:15:00
(C 4 3)*(A 3 3)
4 楼
cck2004041 [专家分:50] 发布于 2009-01-12 15:06:00
int main(int argc, char* argv[])
{
int n=0,Number=0,j=0,i=0;
for(i=1;i<=4;i++)
{
for( int j=1;j<=4;j++)
{
for(n=1;n<=4;n++)
{
cout<<i*100+j*10+n<<endl;
Number+=1;
}
}
}
cout<<"结果是:"<<Number<<endl;
cin>>i;
return 0;
}
5 楼
waterdrop [专家分:0] 发布于 2009-02-03 23:46:00
#include <iostream.h>
main()
{int i,j,k,l,array_number=0;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
{
if((i!=j)&&(i!=k)&&(j!=k))
{ l=100*i+10*j+k;
cout<<l<<"\n";
array_number++;
}
}
cout<<"共有这样的数"<<array_number<<"个"<<endl;
return 0;
}
6 楼
langyuntian [专家分:0] 发布于 2009-02-17 17:48:00
不知道这是考试还是求问啊:
#include "iostream.h"
main()
{
int a,b,c,d,sum;
for(a=1;a<5;a++)
for(b=1;b<5;b++)
for(c=1;c<5;c++)
for(d=1;d<5;d++)
{
if(a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)
{
sum=1000*a+100*b+10*c+d;
cout<<sum<<endl;
}
}
}
7 楼
wshm [专家分:0] 发布于 2009-02-19 13:26:00
#include <iostream>
#include <string>
#include <cstddef>
#include <algorithm>
using namespace std;
size_t Perm(string s, size_t k = 0)
{
static const size_t LENGTH = s.length();
if (k == LENGTH - 1)
{
cout << s.substr(0, LENGTH-1) << endl;
return 1;
}
else
{
size_t count = 0;
for (size_t i=k; i<LENGTH; ++i)
{
swap(s[i], s[k]);
count += Perm(s, k+1);
}
return count;
}
}
int main(int argc, char *argv[])
{
string s("1234");
cout << "总共:" << Perm(s) << endl;
return 0;
}
8 楼
佐文ko [专家分:0] 发布于 2009-02-27 20:21:00
#include<iostream.h>
void main()
{int i,j,k,s,n=0;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
{if(i!=j&&i!=k&&j!=k)
{s=i*100+j*10+k;
cout<<"the sum is:"<<s<<endl;
n++;
}
}
cout<<"the number is;"<<n<<endl;
}
9 楼
飞翔卷卷 [专家分:0] 发布于 2009-02-27 22:54:00
#include<iostream>
using namespace std;
void main()
{
int i,j,m,k=0;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(m=1;m<=4;m++)
{
if(i==j||i==m||j==m)
;
else
{k++;
cout<<i<<j<<m<<endl;}
}
cout<<k<<endl;//总共的个数
}
绝对正确,我试过了
10 楼
disahacker [专家分:20] 发布于 2009-03-09 23:22:00
struct
{
unsigned char a:4;
unsigned char b:4;
unsigned char c:4;
unsigned char d:4;
}i;
int main(int argc, char *argv[])
{
for (i.a = 1;i.a <= 4;i.a++)
{
for (i.b = 1;i.b <= 4;i.b++)
{
for (i.c = 1;i.c <= 4;i.c++)
{
for (i.d = 1;i.d <= 4;i.d++)
{
if (i.a != i.b && i.a != i.c && i.a != i.d && i.b != i.c && i.b != i.d && i.c != i.d)
{
printf("%d%d%d%d\r\n",i.a,i.b,i.c,i.d);
}
}
}
}
}
return 0;
}
我来回复