第21 题 2010 年中兴面试题 编程求解: 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来.

n个数凑出总和m 先放题: 2010 年中兴面试题:输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来。 审题: 注意一个点,随意取几个,说明是一次取完,每个数要么取,要么不取,也就是每个数至多能取一次。当然可以想,那不就是每个数两种可能,一共2的N次方个组合,每组看他们的和是不是m就可以啦。但是!如果我们的n非常大,电脑就要受委屈了,大 阅读详情

思路:

         这可实际上可以看成一个动态规划。

h(n,m)表示从1到n中 任意取几个数和为m的方法数。

  则有 h(n,m)=   h(n-1,m-n) 或者  h(n-1,m)     (既n取或者不取)

 当然其中  注意到 当 m < n 时 可以 直接跳到 h(m,m).还要注意边界条件,既当满足什么条件是

可以直接得出结果。


这个题目不知道有木有解析解。。。如果能求出 (1+x)(1+x^2)(1+x^3)……(1+x^n) 的求和形式,那么

其中x^m的系数就是解,求高人指教!

#include <iostream>
#include <stack>
using namespace std;

stack<int> st;

void PRINT()
{
	stack<int> st1 = st;

	while ( !st1.empty() )
	{
		cout << st1.top() << "  ";
		st1.pop();
	}
	cout << endl;
	return ;
}

void h(int n,int m)
{
	if ( n >= 0 && m == 0)
	{
		PRINT();
		return ;
	}
	if ( n >= 1 && m == 1 )
	{
		st.push(1);
		PRINT();
		st.pop();
		return ;
	}
	if ( n == 1 && m > 1 )
	{
		return ;
	}

	if ( n <= m )
	{
		st.push(n);
		h(n-1,m-n);
		st.pop();

		h(n-1,m);
	}
	else
	{
		h(m,m);
	}
	return ;
}

int main()
{
	int n,m;

	cin >> n >> m;

	h(n,m);
	return 0;
}




MaxEnt运行报错的各种问题及解决方法 由于我使用的环境数据并不是大部分人常用的worldclim上下载的气候数据,而是使用不同的四类环境数据,分别包括:降雨数据、气温数据、氮沉降数据和大气CO2浓度数据,数据需要分别从不同的网站下载,因此并不能得到非常一致的数据文件,导致MaxEnt运行时出现了各种各样的错误。文件终于能够读取了,然而计算到一半又弹出第三种问题,根据弹出的报错提示,找到错误所在那一行,用Notepad++打开,可以发现,这一行确实存在nan值,导致文件读取无法正常进行。出现上图所述的问题时,检查环境变量是否具有相同的行列号。 阅读详情

相关推荐

PCB 传输线教程(上):基于 Polar Si9000 与嘉立创工艺的传输线设计

理论线宽是W1,但在实际制作时,铜线顶部会有部分被刻蚀掉,表面被刻蚀后的宽度表示为W2,一般取经验值W2=W1-1,单位为 mil,Si9000 里面默认也是采用 W1,W2 相差 1 mil 的方式进行计算。表面阻抗结构就是简单的在一个平面上走信号线,以另外一个平面为地平面,信号线所在平面不进行铺铜(或铺铜间距大到可以忽略不计),这是最简单的一种结构,只需要知道介质层的厚度和介电常数、信号线厚度就可以进行阻抗计算。这个也是经验值,一般保持默认,或者可以填入 C1 相同的值(即忽略堆积)。

Surrea1的博客 1万+

输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数

本文转自:http://blog.csdn.net/zz198808/article/details/7566352   输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来。   代码: [html] view plaincopyprint? // FindSum.cpp : 定义

风雨无阻 http://blog.youkuaiyun.com/ShineOrRain 1215

用逻辑分析仪实测EM4095:125kHz RFID耳标解码的电压与脉宽玄学

本文通过逻辑分析仪实测EM4095芯片,深入解析125kHz RFID耳标解码中的电压与脉宽关联现象。揭示了供电电压对曼彻斯特编码脉宽的影响规律,并提供了一套可落地的调试方法论,包括信号链路解析、逻辑分析仪配置技巧及系统级稳定性提升方案,帮助开发者解决解码不稳定问题。

weixin_30629653的博客 330

算法--中兴面试:输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数, 使其和等于 m

输入两个整数 n 和 m,从数列1,2,3…….n 中随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.

Java仗剑走天涯 3993

如何在VSCode中无缝集成Azure OpenAI GPT-5-codex?保姆级配置教程

本文详细介绍了在VSCode中无缝集成Azure OpenAI GPT-5-codex的完整配置教程,涵盖环境准备、Azure资源创建、本地配置、VSCode插件安装及高级定制。通过Codex CLI和config.toml文件配置,开发者可快速实现AI辅助编程,大幅提升代码生成、错误诊断和文档编写效率。

weixin_29268637的博客 558

实战教程:用DETR+超分辨率搞定红外小目标检测(附完整代码)

本文提供了一套完整的红外小目标检测实战方案,通过融合EDSR超分辨率技术与改进型DETR深度学习算法,有效解决了红外图像中小目标检测的难题。文章详细介绍了从环境搭建、数据预处理、模型定制(如引入EMA注意力与S2特征层)到训练调优的全流程,并附有完整代码,旨在帮助开发者将前沿算法高效落地于安防、自动驾驶等实际场景。

weixin_29057163的博客 532

输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数, 使其和等于 m

编程求解: 输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来. 思路: 从小到大 依次拼凑 后面选的数字 必须比前面大 保证不重复 如: n = 4 m = 8 1 2 3 4 超过8 去掉最后一个数 导数第二个数加一 1 2 4 小于8 最后一个数等于 4 去掉最后一个数 导数第二个数

王小东大将军的博客 1618

YOLO26涨点改进 | 独家创新,注意力改进篇 | AAAI 2025 | YOLO26引入 DRM 防御优化模块,进行特征优化/特征增强,助力目标检测、图像分类、图像分割有效涨点

本文提出了一种基于DRM防御优化模块改进的YOLO26网络模型,显著提升了目标检测的鲁棒性和特征提取能力。DRM模块通过优化特征提取过程、增强抗噪声能力和补充细节信息,有效提高了模型在复杂场景下的检测精度和定位准确度。该模块可集成于UNet等主干网络,采用Transformer结构实现特征精炼,在对抗攻击环境下仍能保持稳定的融合效果。实验表明,改进后的模型在红外与可见光图像融合任务中表现出色,同时提升了下游任务性能。文章详细介绍了DRM模块的结构、作用机制及实现代码,并提供了两种YOLO26改进方案.

Ai缝合怪、助力小伙伴高效发论文 146

输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来.

题目:输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来. 1.  是01背包问题。从最大值n开始取, 如果取n ,则剩下的为 m-n.需要从剩下的n-1个数中取。 如果不取n,则和仍为m,从剩下的n-1个数中取。所以,会是一个递归问题。                            find(m-n, n-1)

liu_qiqi的专栏 1160

[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探

这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步。前文分享了分享机器学习在安全领域的应用,并复现一个基于机器学习(逻辑回归)的恶意请求识别。这篇文章简单叙述了Web安全学习路线,并实现了最简单的木马和病毒代码,希望对读者有所帮助。

杨秀璋的专栏 3万+

前沿探索:基于强化学习的目标检测与跟踪技术及论文解析

前沿探索:基于强化学习的目标检测与跟踪技术及论文解析 ,人工智能,计算机视觉,大模型,AI,本文聚焦基于强化学习的目标检测与跟踪技术,先介绍相关技术基础,包括目标检测、跟踪及强化学习的算法等。接着阐述强化学习在目标检测与跟踪中的应用思路、框架及典型算法,解析三篇相关论文的背景、方法、实验结果。还探讨了该技术面临的样本效率、奖励函数设计等挑战,以及结合迁移学习等的未来发展方向,为该领域研究提供参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 11万+

输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来

输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来。

小多多专栏 940

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m

第21 题 2010 年中兴面试题 编程求解: 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来. 题目来源: 微软等公司数据结构+算法面试100 题V0.1 版 http://topic.cs

xshbx的专栏 6685

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python用户输入两个数m和n_【编程题目】输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数, 使其和等于 m ... ★...

第 21 题(数组)2010 年中兴面试题编程求解:输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.我的思路:从小到大 依次拼凑 后面选的数字 必须比前面大 保证不重复如: n = 4 m = 81 2 3 4 超过8 去掉最后一个数 导数第二个数加一1 2 4 小于8 最后一个数等于 4 去掉最...

weixin_42505397的博客 3671

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.

2010年中兴面试题编程求解:输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.C# codes as below:using System;namespace ConsoleApp{    classRunClass    {        staticvoid Main()        {            newHelper().Print(100, 150);            Console.ReadLine(

2544

算法习题21:输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,找出和为m

来自:http://bbs.csdn.net/topics/350118968 2010年中兴面试题 编程求解: 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来. ———————————————————————————————————— 这题其实就是一个背包问题,找出符合的物品, 一种方法是模拟背包放物

ylf13的专栏 2133

21.输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数

2010年中兴面试题 编程求解: 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.   这里选择用递归实现比较方便 程序选择用数组记录中间选择数 #include //arr是记录数组,n是输入n,m是输入的m,i是当前数组存储位置 void fuc(int* arr,int n,int m,in

游刃有余则成的专栏 1543

输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合出来---经典数据结构第21道

import java.util.LinkedList; /** * 中兴面试题(2010) 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来. * 动态规划思想 将findCombination(m,n)分解成加入n的findCombination(m - n, n - * 1)与不加入n的findCombi

SyLucky512的专栏 1011

19. 中兴面试题:输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合

2010年中兴面试题 编程求解: 输入两个整数 n 和 m,从数列1,2,3.......n中随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来. 分析: 可以使用递归思想, 从第n个数开始找其组合, 1)包括n的所有组合 2)不包括n的所有组合 把所有组合整合起来就OK了。 下面来看具体的实现: #include #include #in

我的技术生活 3038

面试题:输入两个整数 n 和 m,从数列1,2,3…….n 中 随意取几个数, 使其和等于 m...

问题: 2010年中兴面试题编程求解:输入两个整数 n 和 m,从数列1,2,3…….n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来. 思路: 类似这种组合问题一般都是使用递归的策略,考虑到n个数和为m,假设要解决的函数为f(n,m), 假设我们选择了第n个数,那么问题就变成了f(n-1,m-n), 否则的话问题就是f(n-1,m), 再考虑下边界条...

dianqia8481的博客 364

【编程题目】输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数, 使其和等于 m ... ★...

第 21 题(数组)2010 年中兴面试题编程求解:输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.   我的思路: 从小到大 依次拼凑 后面选的数字 必须比前面大 保证不重复如: n = 4 m = 81 2 3 4 超过8 去掉最后一个数 导数第二个数加一1 2 4 小于8 最后一个数等...

weixin_34402408的博客 386

输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数,使其和等于m问题

#include #include using namespace std; //输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, //使其和等于m ,要求将其中所有的可能组合列出来. //FindSum(sum,n)=FindSum(sum-n,n-1)+FindSum(sum,n-1); bool FindSum(int sum, int n, vector &

fuqiaoyimeng的专栏 2530

Interview100-21 n个整数中和为m的组合

题目 (2010 中兴)编程求解:输入两个整数n和m,从数列1,2,3,..,n中随意取几个数,使其和为m,要求将其中所有的可能列出来。 求解 这个问题可以看成背包问题的变形,n个物品,放入k个包中,每个包的容量为m。分包问题的解决方法为使用一个递归方式。求解思路如下: 递归结束的条件:n&lt;1 or m&lt;1 如果n&gt;m,则n中大于m的数都可以舍去,即可以置n=m 对于...

Blossom 747

【微软100题】2010年中兴面试题 编程求解: 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m

package test; /** * 2010年中兴面试题 编程求解: 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m * ,要求将其中所有的可能组合列出来. * */ /** * * @author honest * */ public class MS_21 { //初始化数组 static int[] array

Zealot的专栏 1926

21 整数n和m,随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来

/* 第 21 题 2010 年中兴面试题 编程求解: 输入两个整数n和m,从数列 1,2,3.......n 中随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来. */ #include #include using namespace std; int n,m; void printResult(int sum[],int n){ int i; for(i=0

小人物的草稿本 882

求整数m的最大加数为n的组合问题

2010年中兴面试题 编程求解: 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.   public class c { /* * 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来. */ publi

hello,黑豆先生 1548
上一篇: 第19 题: 题目:定义Fibonacci 数列如下: / 0 n=0 f(n)= 1 n=1 \ f(n-1)+f(n-2) n=2
下一篇: 第25 题: 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
Matrixlibing
博客等级 码龄14年 2粉丝 14原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值