首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

1,2,3,4任取三个数构成不同的三位数

2012-08-09 
1,2,3,4任取三个数组成不同的三位数哇咔咔、新手、完全想不到啊[解决办法]对每个数字编号 存入数组 然后将数

1,2,3,4任取三个数组成不同的三位数
哇咔咔、新手、完全想不到啊

[解决办法]
对每个数字编号 存入数组 然后将数组下标的所有情况排序就可以了
[解决办法]
[code=C/C++][/code]
#include <iostream.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
{
if(i==j)
continue;
for(k=1;k<=4;k++)
{
if(k==i||k==j)
continue;
cout<<100*i+10*j+k<<endl;

}
}

}
[解决办法]

C/C++ code
/**  文件名:Combination.c*  用途:组合算法*  编程环境:WinXP SP2+CL 8.0*  完成日期: 2006.2   Ver 0.01*  作者: 88250*  联系方式: E-mail: DL88250@gmail.com  QQ:845765*/#include <stdio.h>#include <stdlib.h>#define MAX_NUM 26int comb[MAX_NUM];int c1,c2;void combination(int m, int n){    int i, j;    for (i = m; i >= n; i--){        comb[n] = i;        /* 选择当前的“头”元素 */        if (n > 1){            /* 进入下一次更小的组合问题 */            combination(i - 1, n - 1);        }else{            /* 满了需要的组合数,输出 */            for (j = comb[0]; j > 0; j--){                printf("%c", 65+c1-comb[j]);            }            printf("\n");        }    }    return;}int main(int argc, char *argv[]){    if (argc<3) {        printf("%s 组合下标 组合上标\n",argv[0]);        return 0;    }    c1=atoi(argv[1]);    if (c1<1||26<c1) {        printf("1<=组合下标<=26\n");        return 0;    }    c2=atoi(argv[2]);    if (c2<1||c1<c2) {        printf("1<=组合上标<=组合下标\n");        return 0;    }    comb[0]=c2;    combination(c1, c2);        /* C(4, 2) */    return 0;} 

热点排行