英国标志性建筑图片:用2、3、6、7、8这五个数组成两个五位数,每个数字在每个五位数中必须出现一次,这两个五位数的差是多少

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 15:37:02
列式

可组成120个数。
120个数组成两数之差就太多了。
程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main(int argc, char *argv[])
{
int i,j,k,l,m;
int a=2;
int b=3;
int c=6;
int d=7;
int e=8;
int NN=0; // 组成的数的个数
int all[200]; //组成的数

for (i=0;i<5;i++) {
for (j=0;j<5;j++) {
if ( j == i) goto Lab1;
for (k=0;k<5;k++){
if ( k == i || k == j) goto Lab2;
for(l=0;l<5;l++){
if (l == i || l == j || l == k) goto Lab3;
for(m=0;m<5;m++){
if (m== i || m == j || m == k || m==l ) goto Lab4;
all[NN]= a * pow(10,i)+ b * pow(10,j) + c * pow(10,k) + d * pow(10,l) + e * pow
(10,m);
NN = NN + 1; // 累计组成的数的个数
Lab4:;
};
Lab3:;
};
Lab2:;
};
Lab1:;
};
};

// 打出两数差
k=0;
for (i=0;i<NN-1;i++)
for (j=i+1;j<NN;j++)
{
k = k + 1;
printf("%d: %d - %d = %d\n",k,all[i],all[j],all[i] - all[j]);
};
exit(0);
}

可组成120个数。
120个数组成两数之差就太多了。
程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main(int argc, char *argv[])
{
int i,j,k,l,m;
int a=2;
int b=3;
int c=6;
int d=7;
int e=8;
int NN=0; // 组成的数的个数
int all[200]; //组成的数

for (i=0;i<5;i++) {
for (j=0;j<5;j++) {
if ( j == i) goto Lab1;
for (k=0;k<5;k++){
if ( k == i || k == j) goto Lab2;
for(l=0;l<5;l++){
if (l == i || l == j || l == k) goto Lab3;
for(m=0;m<5;m++){
if (m== i || m == j || m == k || m==l ) goto Lab4;
all[NN]= a * pow(10,i)+ b * pow(10,j) + c * pow(10,k) + d * pow(10,l) + e * pow
(10,m);
NN = NN + 1; // 累计组成的数的个数
Lab4:;
};
Lab3:;
};
Lab2:;
};
Lab1:;
};
};

// 打出两数差
k=0;
for (i=0;i<NN-1;i++)
for (j=i+1;j<NN;j++)
{
k = k + 1;
printf("%d: %d - %d = %d\n",k,all[i],all[j],all[i] - all[j]);
};
exit(0);
}

相当多了...

我来编个程序吧!

楼主想知道所有可能的答案吗

晕,说明白啊~~~