本文介绍: 由题目分析可以知道,给小明发的牌一共有13种类型,每种类型的牌一共有四张。对于每种牌,我们都有5种选择,不拿、拿一张、拿两张、拿三张、拿四张。每次多拿多少张就将sum多少,这样如果到13则说明可以取到答案答案:3598180。

题目描述

蓝桥杯大赛历届真题 – C 语言 B 组 – 蓝桥云课 (lanqiao.cn)

题目分析

答案:3598180

  由题目分析可以知道,给小明发的牌一共有13种类型,每种类型的牌一共有四张。对于每种牌,我们都有5种选择,不拿、拿一张、拿两张、拿三张、拿四张。每次多拿多少张就将sum 加多少,这样如果到13则说明可以取到答案

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int ans, sum;
void dfs(int dep)
{
	if(sum > 13 || dep > 13)return;
	if(sum == 13)
	{
		ans ++;
		return;	
	}
	for(int i = 0; i <= 4; i ++)
	{
		sum += i;
		dfs(dep + 1);
		sum -= i;
	} 
}
int main()
{
	dfs(0);
	cout << ans;

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注