C语言程序设计100真题-1234组成不同三位数

题目

题目要求计算使用数字1、2、3、4可以组成多少个互不相同且无重复数字的三位数,并列出这些三位数。

实现的思路

实现的思路是通过三层循环来遍历所有可能的组合,其中每一层循环代表一个数字位(百位、十位、个位)。循环的每一次迭代都会检查当前选取的数字是否与之前的数字重复,如果不重复,则输出这个组合成的三位数,并增加计数器sum的值。

代码(包含解析)


	#include <stdio.h> 


	int main(){ 

	int i,j,k,sum=0; // 初始化变量,i, j, k用于循环,sum用于计数 
	

	// 三层循环遍历所有可能的组合 

	for(i=1;i<=4;i++) // i代表百位数字 

	for(j=1;j<=4;j++) // j代表十位数字 

	for(k=1;k<=4;k++) // k代表个位数字 

	if(i!=j && j!=k && k!=i){ // 检查当前组合是否没有重复数字 

	printf("%d\n",i*100+j*10+k); // 输出当前组合成的三位数 

	sum++; // 增加计数器 

	} 

	printf("一共有%d个数\n",sum); // 输出总数

	}

 

代码解读

  1. 变量初始化ijk分别用于遍历百位、十位和个位的数字,sum用于计数满足条件的三位数的数量。

  2. 三层循环:通过三层循环,遍历所有可能的数字组合。每一层循环代表一个数字位,范围都是1到4,因为题目中给定的数字只有1、2、3、4。

  3. 条件判断if(i!=j && j!=k && k!=i)用来判断当前的组合是否满足没有重复数字的条件。只有当三个数字都不同时,才会进入这个条件语句内部。

  4. 输出与计数:如果当前组合满足条件,就输出这个三位数(通过printf函数和算术运算i*100+j*10+k),并增加计数器sum的值。

  5. 输出总数:在所有可能的组合遍历完毕后,输出满足条件的三位数的总数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彪哥.TOP

稀罕作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值