91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-13
  • 語言: C/C++
  • 標簽: 子集和??回溯??c++??

資源簡介

一個程序,很好的。是關于如何用回溯法求子集和的。

資源截圖

代碼片段和文件信息

//?子集和.cpp?:?定義控制臺應用程序的入口點。
//

#include?“stdafx.h“
#include?“stdio.h“
#include?“iostream“
using?namespace?std;

int?backtrack(int?arr[]int?nint?sum);
struct?SUBBUFF
{
int?data;//存放當前的值
char?IsIn;//記錄當前值是否加入了子集
};

int?main(int?argc?char*?argv[])
{
int?nsum;?//定義了集合元素個數,以及要求的子集的和
cout<<“輸入元素個數:“;
cin>>n;
cout<<“輸入要求的子集和:“;
cin>>sum;
SUBBUFF?*arr?=?new?SUBBUFF[n];
int?i=0;
cout<<“初始的集合元素“< for?(i=0;i {
cin>>arr[i].data;
arr[i].IsIn?=?‘N‘;//將當前的值的初始化狀態設為?‘N‘表示不在子集中
}
int?pointto?=?0countsum?=?0;//當前指向的角標,和現在的子集和
while?(pointto>=0)//進入循環,開始回溯
{
if?(arr[pointto].IsIn?==?‘N‘)//向子集里面增加值
{
countsum?+=arr[pointto].data;
arr[pointto].IsIn?=?‘Y‘;
if?(countsum?==?sum)//找到答案,輸出結果
{

評論

共有 條評論