首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每天一道c语言编程题,第8题(组合无重复三位数)

 编写一道有 1、2、3、 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#include

int main()

{

  int i, j, k, count = 0;

  for (i = 1; i

      for (j = 1; j

          if (j == i) continue; // 十位数字不能和百位数字相同

          for (k = 1; k

              if (k == i || k == j) continue; // 个位数字不能和百位、十位数字相同

              printf("%d%d%d\n", i, j, k);

              count++;

          }

      }

  }

  printf("共%d个三位数\n", count);

  return 0;

}

题目要求组成互不相同且无重复数字的三位数,那么我们可以先枚举百位数字,再枚举十位数字,最后枚举个位数字。而在枚举的过程中,需要注意一下几点:

百位数字的取值范围是 1 到 4,因为只有 1、2、3、4 这四个数字可以组成三位数。

十位数字的取值范围是除去百位数字后的剩余数字,即如果百位数字是 1,那么十位数字只能是 2、3、4 中的两个数字。

同理,个位数字的取值范围是除去百位和十位数字后的剩余数字,即如果百位数字是 1,十位数字是 2,那么个位数字只能是 3 或 4。

在枚举的过程中,需要判断百位、十位和个位数字是否互不相同且无重复数字,如果满足条件,就输出这个三位数。

因此,可以使用三重循环来实现这个过程

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230308A01VGO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券