题目描述
编写程序,判断由1,2,3,4四个数字能组成多少个互不相同且无重复数字的三位数?输出这些数。每输出五个数换行。
输出样例:
123 124 132 134 142
143
共有:6
代码:
#include<stdio.h>
#include<stdbool.h>
int main(){
int nums[] = {2, 3, 4}; //存储除1以外的可使用的数字
int length = sizeof(nums) / sizeof(nums[0]); //数组长度
int count = 0; //计数器,记录以1为首的三位数的数量
//两层循环分别代表三位数的十位和个位
for(int i = 0; i < length; i++){
for(int j = 0; j < length; j++){
//跳过与十位数字相同的数字
if(j == i){
continue;
}
//构建以1为首的三位数
int num = 100 + num[i] * 10 + nums[j];
//输出三位数,并计数
printf("%d", num);
count++;
//每输出五个换行
if(count % 5 == 0){
printf("\n");
}
}
}
printf("\n共有:\n", count);
return 0;
}