一、聪明的情侣

  酋长的女儿艾丽要出嫁了,按以往的风俗习惯,要搭个高台,台下是众多的求婚者,艾丽在台上扔束花,扔在台下谁身上,艾丽就得嫁给谁。
但她担心落不到心爱的雷蒙身上。艾丽私下约雷蒙商量如何是好。雷蒙想出了一个主意……艾丽便和父亲说:“我不愿意搭台撒花,这么多人来
,挤在一起乱哄哄的,没秩序。”父亲说,“不这样也可以,但结婚时要当场在人群中决定嫁给谁,不许指名,方法你自己定。”艾丽高兴的告
诉主持人如何行事。婚日来临,人群拥挤,主持人叫求婚者排成一队,雷蒙在队外数了数队列共有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

算法练习——聪明的情侣相关推荐

  1. Java实现 蓝桥杯VIP 算法提高 聪明的美食家

    算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好 ...

  2. 1020: 算法提高 聪明的美食家

    1020: 算法提高 聪明的美食家 时间限制: 1 Sec  内存限制: 256 MB 提交: 10  解决: 3 [提交][状态][讨论版] 题目链接 题目描述 如果有人认为吃东西只需要嘴巴,那就错 ...

  3. 算法提高 聪明的美食家

    算法提高 聪明的美食家 时间限制: 1 Sec  内存限制: 256 MB 提交: 2  解决: 1 [提交][状态][讨论版] 题目描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一 ...

  4. 蓝桥杯 算法提高 聪明的美食家

    算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难&quo ...

  5. [Java] 蓝桥杯ADV-166 算法提高 聪明的美食家

    问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食 ...

  6. 蓝桥杯 ADV-166 算法提高 聪明的美食家 java版

    问题描述 如果有人认为吃东西只需要嘴巴,那就错了.都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食物 ...

  7. 蓝桥杯 ADV-166算法提高 聪明的美食家

    问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食 ...

  8. 蓝桥杯 ADV-166算法提高 聪明的美食家(java)

    问题描述 如果有人认为吃东西只需要嘴巴,那就错了.都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食物 ...

  9. matlab 图像显著性检测ft_全局对比度的图像显著性检测算法

    点击上方蓝字关注我们 星标或者置顶[OpenCV学堂] 干货与教程第一时间送达! 显著性检测概念 显著性就是可以快速引起你注意的对象或者物体,在图像或者视频中显著性检测的结果往往是图像或者视频中对象, ...

最新文章

  1. 【转】关于编译链接——gcc/g++
  2. IDEA2021.3无法创建测试类解决方法
  3. Angular中怎样通过localStorage实现数据持久化-实现存储搜索历史为例
  4. 在网站建设过程中主要在哪几个方面为后期的网站优打好根基?
  5. phpstorm config include paths for swoole
  6. 解决Ubuntu18.04 No wifi adapter found
  7. 某项目网络实施中的几个关键点解析
  8. iOS动画:带时分秒指针的时钟动画(上)
  9. Github 15K! 亿级向量相似度检索库Faiss 原理+应用
  10. 试题17 方程的解(枚举法)
  11. python成功之路,Day1-发展历史
  12. centos7 firewalld
  13. SQLserver中勒索病毒或严重损坏后的恢复数据方法
  14. 深度搜索和广度搜索特点的深刻理解
  15. torch.bmm()验证
  16. wps表格l制作甘特图_甘特图是什么?-如何用WPS表格做甘特图
  17. 小度霸屏头部综艺,智能音箱迎来国民品牌
  18. 深度linux禁用独立显卡,deepin显卡设置
  19. 2021科大讯飞试题标签预测挑战赛亚军方案总结
  20. Lightroom人像磨皮滤镜插件portraiture Mac版

热门文章

  1. Win8.1/Win10在某些程序输入中文变成问号的解决方法
  2. axios.all()解决并发请求的问题
  3. VMware Horizon Client剪贴板异常问题解决
  4. OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常
  5. 启动mysql时显示:/tmp/mysql.sock 不存在的解决方法
  6. 电脑怎么重装系统Win11?需要什么条件
  7. win11打开安全中心显示英文怎么办 windows11打开安全中心显示英文的解决方法
  8. activiti流程消息事件触发messageEventReceived,MessageCatchingEvent 及消息启动流程
  9. din字体是开源字体吗_12款免费开源英文字体
  10. docker es持久化_docker如何保持数据持久化?其实可以考虑通过数据卷挂载的方式~...