问题描述
小明最近喜欢搭数字积木。一共有10块积木,每个积木上有一个数字,0~9。
搭积木规则:
每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。
最后搭成4层的金字塔形,必须用完所有的积木。
下面是两种合格的搭法:
请你计算这样的搭法一共有多少种?
输入
没有输入
输出
一个整数
思路:
水题,先利用全排列模板生成0-9这十个数的全排列然后再进行判断就行了。
代码:
#include <algorithm>#include<stdio.h> using namespace std;int num=0;void process(int *a){if(a[0]<a[1] && a[0]<a[2] && a[1]<a[3] && a[1]<a[4] && a[2]<a[4]&&a[2]<a[5]&&a[3]<a[6]&&a[3]<a[7]&&a[4]<a[7]&&a[4]<a[8]&&a[5]<a[8]&&a[5]<a[9])num++;}int main (){int a[]={0,1,2,3,4,5,6,7,8,9};int n=10;do{process(a);}while(next_permutation(a,a+n));printf("%d",num);return 0;}
答案:768
蓝桥杯真题 搭积木 小明最近喜欢搭数字积木。一共有10块积木 每个积木上有一个数字 0~9。 搭积木规则: 每个积木放到其它两个积木的上面 并且一定比下面的两个积木数字小。 最后搭成4层的金字塔形
如果觉得《蓝桥杯真题 搭积木 小明最近喜欢搭数字积木。一共有10块积木 每个积木上有一个数》对你有帮助,请点赞、收藏,并留下你的观点哦!