解题思路

排列:4P3

mathu.h

//
// Created by crazy_rays on 2022/8/30.
///*** 计算阶乘* @param num 要计算阶乘的数字* @return 阶乘结果*/
int factorial(int num);/*** 排列:n!/(n-m)!* @param n 总数* @param m 排列数* @return 排列结果数*/
int permutation(int n, int m);/*** 组合:n!/m!(n-m)!* @param n 总数* @param m 组合数* @return 组合结果数*/
int combination(int n, int m);

mathu.c

//
// Created by crazy_rays on 2022/8/30.
//int factorial(int num) {return (num == 0) ? 1 : num * factorial(num - 1);
}int permutation(int n, int m) {return factorial(n) / factorial(n - m);
}int combination(int n, int m) {return factorial(n) / (factorial(m) * factorial(n - m));
}

L1.h

//
// Created by crazy_rays on 2022/8/30.
// References from : https://www.runoob.com/cprogramming/c-100-examples.html
//#ifndef CTEST100_L1_H
#define CTEST100_L1_H#endif //CTEST100_L2_H#include <stdio.h>
#include "../include/mathu.h"/*** 题目:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?* 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。*/
void L1();

L1.c

//
// Created by crazy_rays on 2022/8/30.
// References from : https://www.runoob.com/cprogramming/c-100-examples.html
//#include "../include/L1.h"/*** 题目:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?* 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。*/
void L1() {printf("\nLesson 1 :\n");//4P3排列:n!/(n-m)! = 4!/(4-3)!printf("有%d种方式\n", factorial(4));// 百十个三层循环for (int hundred = 1; hundred <= 4; ++hundred) {for (int ten = 1; ten <= 4; ++ten) {for (int one = 1; one <= 4; ++one) {// 判断排列结果中是否有同一个数字if (ten == hundred || one == ten || one == hundred) {continue;}printf("%d%d%d\n", hundred, ten, one);}}}
}

main.c

#include "include/L1.h"int main() {L1();return 0;
}

Result

【C 语言经典100例 | 菜鸟教程】C 语言练习实例1相关推荐

  1. 【C 语言经典100例 | 菜鸟教程】C 语言练习实例2

    解题思路: 可以考虑借鉴等差数列的特殊情况,公差为0的方式来实现. 将输入数字分解成n个a1组成的等差数列,其公差d为0,且a1=100000,且an<=a1 再对每个元素根据其顺序进行加权,各 ...

  2. C 语言经典100例(91-100)

    所有题目来源:菜鸟教程C 语言经典100例 附上前面的题目:C 语言经典100例(81-90) 目录 C 练习实例91 C 练习实例92 C 练习实例93 C 练习实例94 C 练习实例95 C 练习 ...

  3. 求一批整数中出现最多的个位数字_C语言经典100例007-求低n-1位的数

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...

  4. 北京邮电大学c语言按要求输出_C语言经典100例004-统计各个年龄阶段的人数

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...

  5. C语言经典100例---实例九:输出国际象棋棋盘

    编译器:VS2019 不同的编译器打印出来的国际象棋棋盘是不同的,这里提供VS2019的代码. 菜鸟教程上给出的代码不适用VS2019,打印出来的国际象棋棋盘一点也不整齐!!! 最后:一定要记得实践出 ...

  6. C语言经典100例(2)——企业发放的奖金根据利润提成。

    题目: 企业发放的奖金根据利润提成. 利润低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%: 20万到40万 ...

  7. c语言经典100例c22 规律题

    /* [程序22] c22.c * 题目:有一分数序列:1/2,2/3,3/5,5/8,8/13,13/21...求出这个数列的前20项之和. * 程序分析:请抓住分子与分母的变化规律,某个分数的分母 ...

  8. C语言经典100例(9)——要求输出国际象棋棋盘。

    我们首先来了解一下国际象棋的棋盘长什么样子 这是我在百度百科找到的介绍,还是放图吧,简单粗暴. 啊,对.就长这样.虽然我也没玩过....这是一个8*8的黑白交替,一共64个格子的棋盘. #includ ...

  9. 【C语言经典100例】 -- 28 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后

    问题描述: 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后问第一个人,他说是10岁 ...

最新文章

  1. yum 简介及其常用命令
  2. java怎么获取服务器文件夹,java获取远程服务器的文件夹
  3. java 加密word_Java 加密和解密Excel文档
  4. Portal-Basic Java Web 应用开发框架:应用篇(十三) —— REST Convention
  5. 前端学习(2661):生命周期
  6. python函数在传参的时候,到底在传些什么?
  7. oem监控mysql_OEM12c 安装配置MySQL Plug-in用来监控MySQL
  8. Silverlight 2 控件 SDK 源代码
  9. python 释放线程内存_python变量内存地址释放与加速并行计算多线程
  10. 2021年计算机二级考试广东卷英语,2021年广东计算机等级考试考试模拟练习卷.doc...
  11. python运用maya_Maya中Python脚本的使用(一)
  12. java中通过反射得到StatusBarManager
  13. host地址切换工具-SwitchHosts
  14. 英特尔全面布局云边协同,夯实医疗云数智创新底座
  15. Markdown Preview Enhanced (MPE)踩坑记录
  16. 微信小程序: wx:key详解
  17. 【计算机网络】集线器、网桥、交换机、路由器、网关大解析
  18. JS算法笔记---移除元素
  19. CES 2022:四大芯片巨头正面厮杀,抢滩自动驾驶、元宇宙
  20. 尚硅谷外卖项目笔记二

热门文章

  1. JavaScript(事件)
  2. 手机有必要戴手机壳吗?
  3. 171216—几种经典加密方法。
  4. windows sublime格式化json快捷键
  5. C++学习(三九四)relocation R_AARCH64_ADR_PREL_PG_HI21 undefined reference to `__dso_handle‘
  6. 用python画熊耳朵_Python画熊头像
  7. vsnprintf va_list va_start va_end
  8. 虹科案例|便携式光谱仪用于水质检测
  9. 看各国首脑夸张防卫!(组图)
  10. TPU编程竞赛系列|算能赛道冠军SO-FAST团队获第十届CCF BDCI总决赛特等奖!