转载出处:C 语言经典100例 其一
题目
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?各是多少?
编程没有捷径。Talk is cheap. Show me the code
程序分析
前提:可填在百位、十位、个位的数字都是1、2、3、4。
1. 组成所有的排列
2. 剔除不满足条件的排列
3. 统计数量
PS:建议先自行思考后再继续往后看。
代码实现
代码已经上传到Github:传送门
#include <stdio.h>
/**
* @description:
* @author: HuaiAngg
* @create: 2019-01-23 10:31
*/
int main(void)
{
int i, j, k, amount = 0;
printf("---------------------------------------\n");
// 以下为三重循环
for( i=1; i<5; i++) {
for( j=1; j<5; j++) {
for( k=1; k<5; k++) {
// 确保i、j、k三位互不相同
if ( i!=k && i!=j && j!=k) {
printf("%d,%d,%d\n", i, j, k);
// 计数器自增
amount ++;
}
}
}
}
// 输出个数
printf("共有 %d 个组合\n", amount);
printf("---------------------------------------\n");
return 0;
}
说明
题目来源于网络素材,笔者只负责整理。
如有侵权请联系笔者删除!
觉得还不错,麻烦赏个红心👍
网友评论