数据结构课程设计——猴子吃桃问题

article/2025/11/8 16:11:21

一、实验题目

猴子吃桃子问题

有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。要求:

1)采用数组数据结构实现上述求解

2)采用链数据结构实现上述求解

3)采用递归实现上述求解

二、实验目的

采用数组,链等数据结构实现问题的求解,练习数组链,递归等方法求解问题

三、实验要求

求出原来这群猴子共摘了多少个桃子

四、实验步骤

  基本设计思路:

(1)数组:定义一个一维数组,分别存储每天的桃子个数,根据题目的内容找出各个数之间的关系,用数组元素表示出来,计算出第一天总共的桃子个数。

(2)链:创建一个链表,将每一天剩余的桃子数储存到链表中最后依次输出链表所储存的元素。

(3)递归:定义一个递归函数,当递归函数中为1时递归函数返回桃子总数,否则桃子数变为题目中所给的关系。

算法设计:

(1)数组:定义一个一维数组peach[10],分别存储每天的桃子个数peach[9]为第十天的桃子数,个数为1。根据题目的内容找出各个数之间的关系peach=(1+peach)*2;进行循环直到天数day变为1,输出第一天的桃子总数。

(2)链:peach为桃子个数,day为天数。创建一个链表head为头结点,采用尾插法将桃子个数插入到链表中,依次输出链表所储存的元素。

(3)定义一个递归函数f()peach为桃子个数,day为天数。当递归函数中为1时递归函数返回桃子总数,否则桃子数变为题目中所给的关系即:peach=(1+peach)*2;

函数相关说明:

(1)数组:int main()//实现函数运算与输出;

(2)链:int main()//实现对其他函数的调用与输出;

             void Insert()//实现链表的建立

  3)递归:int main()//实现对其他函数的调用与输出;

int f(int day,int peach)//实现递归调用

输入与输出:

无输入

输出总桃子个数

程序运行结果

 

 

 


五、源程序清单(代码)

(1)数组
#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{int peach[10];//定义一个一维数组,分别存储每天的桃子个数peach[9]=1;//第十天桃子数量为1int i;printf("--------数组方法--------\n\n第10天还剩:1个桃子\n");for(i=8;i>=0;i--){peach[i]=(peach[i+1]+1)*2;printf("第%d天还剩:%d个桃子\n",i+1,peach[i]);}printf("\n猴子共摘了%d个桃子\n",peach[0]);return 0;
}
(2)链#include <iostream>
#include<stdio.h>
#include<malloc.h>
using namespace std;typedef struct Node
{int data;struct Node *next;
} SqList;
SqList *head;
void Insert()
{SqList *s,*p;int day=10;int peach=1;head=(SqList *)malloc(sizeof(SqList));p=head;while(day>0){s=(SqList *)malloc(sizeof(SqList));s->data=peach;p->next=s;p=s;peach=(peach+1)*2;day--;}p->next=NULL;p=head;head=head->next;free(p);
}
int main()
{Insert();SqList *p;p=head;int day=10,sum;printf("--------链方法--------\n\n");while(p!=NULL&&day>0){printf("第%d天还剩:%d个桃子\n",day,p->data);p=p->next;day--;if(day==1)sum=p->data;}printf("\n猴子共摘了%d个桃子",sum);return 0;
}
(3)递归#include <iostream>
#include<stdio.h>
using namespace std;int f(int day,int peach)
{if(day==1){printf("第%d天还剩:%d个桃子\n\n",day,peach);return peach;}else{printf("第%d天还剩:%d个桃子\n",day,peach);peach=(1+peach)*2;return f(day-1,peach);}
}
int main()
{int peach=1;int day=10;int sum=0;printf("--------递归方法--------\n\n");sum=f(day,peach);printf("猴子共摘了%d个桃子\n",sum);return 0;
}



http://chatgpt.dhexx.cn/article/XnQTh3mD.shtml

相关文章

C语言:猴子吃桃问题

题目: 猴子吃桃问题&#xff1a;猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不瘾&#xff0c;又多吃了一个。第二天早上又将剩下的桃子吃掉一半&#xff0c;又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时&#xff0c;见…

dann(胆囊结石的疼痛特点包括)

德语&#xff1a;Denn和Dann有什么区别&#xff1f; denn是调节语气的小品词&#xff0c;dann是副词然后 那么的意思 二者由于元音后有两个辅音因此发短音。再者小品词的位置通常在人称代词之后&#xff0c;若无即在动词之后。副词dann需要在句中占位。这里不是haben zu的句型&…

域适应综述

本文转自CSDN博主「Jason66661010」&#xff0c;原文链接&#xff1a;https://blog.csdn.net/qq_42325947/article/details/109306522 目录 摘要 概述 文章主要内容 1.迁移学习概述 1.1 迁移学习, 域适应以及深度域适应的形式化定义 1.2 影响目标域任务性能的因素——泛…

基于域对抗图卷积网络的多变环境下故障诊断

恕我直言&#xff1a;这篇文章与“GCAN: Graph Convolutional Adversarial Network for Unsupervised Domain Adaptation CVPR 2019”的思想基本一致&#xff0c;只是做了一个应用&#xff0c;但是也能发一篇高水平刊物&#xff0c;就很说明问题&#xff0c;不过文章很多在故障…

【迁移学习】深度域自适应网络DANN在EEG睡眠质量检测上的应用

应用DANN进行睡眠质量检测 论文&#xff1a;Sleep Quality Estimation with Adversarial Domain Adaptation:From Laboratory to Real Scenario 目的&#xff1a;应用域对抗神经网络&#xff08;DANN&#xff09;分类实际生活场景中的睡眠脑电信号。 模型&#xff1a;使用实验…

域对抗(域适应)训练

1. 引入 在传统监督学习中&#xff0c;我们经常需要大量带标签的数据进行训练&#xff0c;并且需要保证训练集和测试集中的数据分布相似。如果训练集和测试集的数据具有不同的分布&#xff0c;训练后的分类器在测试集上就没有好的表现。这种情况下该怎么办呢&#xff1f; 域适…

DFN

1.视频教程&#xff1a; B站、网易云课堂、腾讯课堂 2.代码地址&#xff1a; Gitee Github 3.存储地址&#xff1a; Google云 百度云&#xff1a; 提取码&#xff1a; DFN-Tensorflow版本 解释一下BorderNetWork是如何起作用的&#xff0c;是如何进行融合的&#xff0c;有问题&…

DANN:Unsupervised Domain Adaptation by Backpropagation

本篇是迁移学习专栏介绍的第十三篇论文&#xff0c;发表在ICML15上。论文提出了用对抗的思想进行domain adaptation&#xff0c;该方法名叫DANN(或RevGrad)。核心的问题是同时学习分类器 、特征提取器 、以及领域判别器 。通过最小化分类器误差&#xff0c;最大化判别器误差…

【深度域适配】二、利用DANN实现MNIST和MNIST-M数据集迁移训练

知乎专栏链接&#xff1a;https://zhuanlan.zhihu.com/p/109057360 CSDN链接&#xff1a;https://daipuweiai.blog.csdn.net/article/details/104495520 前言 在前一篇文章【深度域适配】一、DANN与梯度反转层&#xff08;GRL&#xff09;详解中&#xff0c;我们主要讲解了DANN…

基于DANN的图像分类任务迁移学习

注:本博客的数据和任务来自NTU-ML2020作业&#xff0c;Kaggle网址为Kaggle. 数据预处理 我们要进行迁移学习的对象是10000张32x32x3的有标签正常照片&#xff0c;共有10类&#xff0c;和另外100000张人类画的手绘图&#xff0c;28x28x1黑白照片&#xff0c;类别也是10类但无标…

【ICML 2015迁移学习论文阅读】Unsupervised Domain Adaptation by Backpropagation (DANN) 无监督领域自适应

会议&#xff1a;ICML 2015 论文题目&#xff1a;Unsupervised Domain Adaptation by Backpropagation 论文地址&#xff1a;http://proceedings.mlr.press/v37/ganin15.pdf 论文代码&#xff1a;https://github.com/fungtion/DANN 问题描述&#xff1a;深度学习的模型在source…

【深度域自适应】二、利用DANN实现MNIST和MNIST-M数据集迁移训练

前言 在前一篇文章【深度域自适应】一、DANN与梯度反转层&#xff08;GRL&#xff09;详解中&#xff0c;我们主要讲解了DANN的网络架构与梯度反转层&#xff08;GRL&#xff09;的基本原理&#xff0c;接下来这篇文章中我们将主要复现DANN论文Unsupervised Domain Adaptation…

【深度域适配】一、DANN与梯度反转层(GRL)详解

CSDN博客原文链接&#xff1a;https://blog.csdn.net/qq_30091945/article/details/104478550 知乎专栏原文链接&#xff1a;https://zhuanlan.zhihu.com/p/109051269 前言 在当前人工智能的如火如荼在各行各业得到广泛应用&#xff0c;尤其是人工智能也因此从各个方面影响当前…

【ICML 2015迁移学习论文阅读】Unsupervised Domain Adaptation by Backpropagation (DANN) 反向传播的无监督领域自适应

会议&#xff1a;ICML 2015 论文题目&#xff1a;Unsupervised Domain Adaptation by Backpropagation 论文地址&#xff1a; http://proceedings.mlr.press/v37/ganin15.pdf 论文代码&#xff1a; GitHub - fungtion/DANN: pytorch implementation of Domain-Adversarial Trai…

Domain Adaptation(领域自适应,MMD,DANN)

Domain Adaptation 现有深度学习模型都不具有普适性&#xff0c;即在某个数据集上训练的结果只能在某个领域中有效&#xff0c;而很难迁移到其他的场景中&#xff0c;因此出现了迁移学习这一领域。其目标就是将原数据域&#xff08;源域&#xff0c;source domain&#xff09;尽…

【迁移学习】深度域自适应网络DANN模型

DANN Domain-Adversarial Training of Neural Networks in Tensorflow域适配&#xff1a;目标域与源域的数据分布不同但任务相同下的迁移学习。 模型建立 DANN假设有两种数据分布&#xff1a;源域数据分布 S ( x , y ) \mathcal{S}(x,y) S(x,y)和目标域数据分布 T ( x , y ) …

【深度域自适应】一、DANN与梯度反转层(GRL)详解

前言 在当前人工智能的如火如荼在各行各业得到广泛应用&#xff0c;尤其是人工智能也因此从各个方面影响当前人们的衣食住行等日常生活。这背后的原因都是因为如CNN、RNN、LSTM和GAN等各种深度神经网络的强大性能&#xff0c;在各个应用场景中解决了各种难题。 在各个领域尤其…

Domain-Adversarial Training of Neural Networks

本篇是迁移学习专栏介绍的第十八篇论文&#xff0c;发表在JMLR2016上。 Abstrac 提出了一种新的领域适应表示学习方法&#xff0c;即训练和测试时的数据来自相似但不同的分布。我们的方法直接受到域适应理论的启发&#xff0c;该理论认为&#xff0c;要实现有效的域转移&#…

DANN:Domain-Adversarial Training of Neural Networks

DANN原理理解 DANN中源域和目标域经过相同的映射来实现对齐。 DANN的目标函数分为两部分&#xff1a; 1. 源域分类损失项 2. 源域和目标域域分类损失项 1.源域分类损失项 对于一个m维的数据点X&#xff0c;通过一个隐含层Gf&#xff0c;数据点变为D维&#xff1a; 然后经…

DaNN详解

1.摘要 本文提出了一个简单的神经网络模型来处理目标识别中的域适应问题。该模型将最大均值差异(MMD)度量作为监督学习中的正则化来减少源域和目标域之间的分布差异。从实验中,本文证明了MMD正则化是一种有效的工具,可以为特定图像数据集的SURF特征建立良好的域适应模型。本…