算法练习——聪明的情侣
一、聪明的情侣
酋长的女儿艾丽要出嫁了,按以往的风俗习惯,要搭个高台,台下是众多的求婚者,艾丽在台上扔束花,扔在台下谁身上,艾丽就得嫁给谁。
但她担心落不到心爱的雷蒙身上。艾丽私下约雷蒙商量如何是好。雷蒙想出了一个主意……艾丽便和父亲说:“我不愿意搭台撒花,这么多人来
,挤在一起乱哄哄的,没秩序。”父亲说,“不这样也可以,但结婚时要当场在人群中决定嫁给谁,不许指名,方法你自己定。”艾丽高兴的告
诉主持人如何行事。婚日来临,人群拥挤,主持人叫求婚者排成一队,雷蒙在队外数了数队列共有101人,于是自己找了个合适的位置也站在队列
中,主持人要大家从前往后1,2,1,2……报数,报单数的退出场外,余下的人位置不变,再重新从前往后1,2,1,2……报数,报单数的退场,
如此下去最后只剩一人,艾丽便嫁给谁。大家惊奇的发现最后剩下的竟是雷蒙。请用程序回答雷蒙刚开始站在队列中的第几个位置。
思路一:
转换成链表,每次去除单数。最后剩下唯一的数,结束。
思路二:
转换为数学问题。求人数中2的阶乘最大数。 64 属于数学口算。
#include "stdafx.h" #include <stdio.h> #include <iostream> #define NULL 0struct People {int index;struct People* next; };struct People* head; struct People* hail;void init(int num){struct People *p;head = (struct People*)malloc(sizeof(struct People));hail = (struct People*)malloc(sizeof(struct People));hail ->index = -1;hail ->next = NULL;head ->index = 0;head->next = hail;for(int i = num;i>0;i--){p = (struct People*)malloc(sizeof(struct People));p->index = i;p->next = head->next;head->next = p; } } void remove(struct People *people){struct People * p;p = people->next;people ->next = p->next;//printf("remove : %d\n",p->index); free(p); } int search(){struct People *p;int num = 102;while(head->next->next->index>0){p = head;while(p->index>=0&&p->next->index>0){remove(p);num--;p=p->next;}//printf("remain: %d\n",num); }return head->next->index; }void freeALL(){struct People *p;while(head->next->index>0){p = head->next;head->next = p->next;free(p);}free(head);free(hail); }/** 第二种解题思路: 直接转换为数学问题,就是求 num中2的阶乘最大的 double fun(int n) {return Math.Pow(2, Math.Floor(Math.Log(n, 2))); } */int main() {int last;init(102);last = search();printf("最后一个数字是:%d",last);freeALL();getchar();return 0; }
转载于:https://www.cnblogs.com/zhuqingqin/p/5392265.html
算法练习——聪明的情侣相关推荐
- Java实现 蓝桥杯VIP 算法提高 聪明的美食家
算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好 ...
- 1020: 算法提高 聪明的美食家
1020: 算法提高 聪明的美食家 时间限制: 1 Sec 内存限制: 256 MB 提交: 10 解决: 3 [提交][状态][讨论版] 题目链接 题目描述 如果有人认为吃东西只需要嘴巴,那就错 ...
- 算法提高 聪明的美食家
算法提高 聪明的美食家 时间限制: 1 Sec 内存限制: 256 MB 提交: 2 解决: 1 [提交][状态][讨论版] 题目描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一 ...
- 蓝桥杯 算法提高 聪明的美食家
算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难&quo ...
- [Java] 蓝桥杯ADV-166 算法提高 聪明的美食家
问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食 ...
- 蓝桥杯 ADV-166 算法提高 聪明的美食家 java版
问题描述 如果有人认为吃东西只需要嘴巴,那就错了.都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食物 ...
- 蓝桥杯 ADV-166算法提高 聪明的美食家
问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食 ...
- 蓝桥杯 ADV-166算法提高 聪明的美食家(java)
问题描述 如果有人认为吃东西只需要嘴巴,那就错了.都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食物 ...
- matlab 图像显著性检测ft_全局对比度的图像显著性检测算法
点击上方蓝字关注我们 星标或者置顶[OpenCV学堂] 干货与教程第一时间送达! 显著性检测概念 显著性就是可以快速引起你注意的对象或者物体,在图像或者视频中显著性检测的结果往往是图像或者视频中对象, ...
最新文章
- 【转】关于编译链接——gcc/g++
- IDEA2021.3无法创建测试类解决方法
- Angular中怎样通过localStorage实现数据持久化-实现存储搜索历史为例
- 在网站建设过程中主要在哪几个方面为后期的网站优打好根基?
- phpstorm config include paths for swoole
- 解决Ubuntu18.04 No wifi adapter found
- 某项目网络实施中的几个关键点解析
- iOS动画:带时分秒指针的时钟动画(上)
- Github 15K! 亿级向量相似度检索库Faiss 原理+应用
- 试题17 方程的解(枚举法)
- python成功之路,Day1-发展历史
- centos7 firewalld
- SQLserver中勒索病毒或严重损坏后的恢复数据方法
- 深度搜索和广度搜索特点的深刻理解
- torch.bmm()验证
- wps表格l制作甘特图_甘特图是什么?-如何用WPS表格做甘特图
- 小度霸屏头部综艺,智能音箱迎来国民品牌
- 深度linux禁用独立显卡,deepin显卡设置
- 2021科大讯飞试题标签预测挑战赛亚军方案总结
- Lightroom人像磨皮滤镜插件portraiture Mac版
热门文章
- Win8.1/Win10在某些程序输入中文变成问号的解决方法
- axios.all()解决并发请求的问题
- VMware Horizon Client剪贴板异常问题解决
- OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常
- 启动mysql时显示:/tmp/mysql.sock 不存在的解决方法
- 电脑怎么重装系统Win11?需要什么条件
- win11打开安全中心显示英文怎么办 windows11打开安全中心显示英文的解决方法
- activiti流程消息事件触发messageEventReceived,MessageCatchingEvent 及消息启动流程
- din字体是开源字体吗_12款免费开源英文字体
- docker es持久化_docker如何保持数据持久化?其实可以考虑通过数据卷挂载的方式~...