【算法设计与分析】

您所在的位置:网站首页 回溯法指派问题 【算法设计与分析】

【算法设计与分析】

2024-07-15 00:09| 来源: 网络整理| 查看: 265

我前几天写了一篇csdn博客文章:【算法设计与分析】——整数划分问题,使用的是递归方法,今天准备使用回溯法啦啦啦啦啦~

上一篇链接:算法设计与分析——整数划分问题(递归法)

首先我给大家画了一个流程图:

在这里插入图片描述 其次我给大家录了一个视频讲解:

因为csdn博客中上传的视频目前仅支持腾讯优酷bilibili,所以我上传到资源啦,但是免费哦~

视频讲解链接:整数划分问题(回溯法)视频讲解

代码实现

大家如果还是看不懂代码,可以自己选取一个简单的例子在草稿纸上演示一遍哦~

#include int nums[100]; //nums用来存放需要放入的数据 int count = 0; //count用来记录一共有多少种划分方法 int integerDivide(int cur,int sum,int p,int n){ //cur表示当前使用的数组位置 sum表示当前使用位置中所存放的数据之和 p表示当前要划分的数 n表示需要划分的数 if(sum > n) return; if(sum == n){ count++; printf("%d=",n); for (int i = 0; i 0;i--){ //回溯法 nums[cur] = i; integerDivide(cur+1,sum+i,i,n); } return count; } int main(){ int n,s; printf("请输入你想要划分的正整数n:\n"); scanf("%d",&n); s=integerDivide(0,0,n,n); printf("该正整数%d一共有%d种划分方法!\n",n,s); return 0; } 结果示例 示例一 在这里插入图片描述示例二 在这里插入图片描述示例三 在这里插入图片描述


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3