题目来源:https://blog.csdn.net/qq_34202873/article/details/79784548

#标题:测试次数
#x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。
#各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。
#x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。
#如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。
#特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。
#如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n
#为了减少测试次数,从每个厂家抽样3部手机参加测试。
#某次测试的塔高为1000层,如果我们总是采用最佳策略,在最坏的运气下最多需要测试多少次才能确定手机的耐摔指数呢?
#请填写这个最多测试次数。
#注意:需要填写的是一个整数,不要填写任何多余内容。

献上我的思路 

    左边是最高层 右边为较低的层
     X是第一部手机的砸与碎地点
     x是第二部手机......
     ..是第三部手机......
    数据过多 省略大部分
一部手机========================================
X88888888888888888888888    //共24层全试过
     (砸n次 可以砸出S层)  S=n (n>)
两部手机========================================
00Xx68000800008000008000                  ←2个手机砸的范例 X之后有两次砸而往左可以精确出有两个0
例如第一个8是碎的地方那么只能挨着砸三次(对应前面Xx6的三次)
后面的8比前面的8多一次可执行次数 故0的个数递增
            ========================================
    Q1:多出来的0是否能将前面的重新排序来减少次数?
    A1:不能,不信你试.
    Q2:最后一个只能挨个儿砸所以尽量少出现6?
    A1:是的,例如:
00Xx6680000800000800000
    实际差别前者的" <-同样的次数砸的范围更大
    所以前者比后者记录更多层数 更优
    Add:将前者的"的交换 *关键就是换还是不换
0Xx80080008000080000080                 ←最优2个手机砸 X之后有一次砸而往左可以精确出有一个0
     (砸n次 可以砸出S层)  S=n! (n>)
    Add:其它情况皆可用上诉方法排除.
三部手机========================================
比较1和2
:000Xx..。。。。        ←3个手机砸的范例,"x..600"实质为原2手机砸的"Xx800"
:000X0x..。。。。     ←最优3个手机砸 其它情况皆可用同样的方法排除.
              ↑       ↑        ↑
              ①       ②        ③
明显1的"所以2是*最优的三部手机砸
①5个0对应原2手机砸的"Xx800"          13层 4次
②9个0对应原2手机砸的"Xx8008000"      23层 5次
③14个0对应原2手机砸的"Xx800800080000"38层 6次
按照以上规律大概是这样:
    (砸n次 可以砸出S层)  S=(+)))+  (n>) 至少要这样:"000X0x..800000"
            ========================================
四部手机等情况不讨论. 得到两个问题:
    Q1:除第一部外直接砸烂的方法最好?
    Q2:综合两部、三部手机的两个算式:全砸烂比不砸烂好?
有兴趣的可以再继续计算...... 

代码:

#include<stdio.h> 

int main(int argc,char **argv){
    int Fiph,Seph,jge;
    for(Fiph = 1;;Fiph++)
    {
        for(Seph = 1;Seph <= Fiph;Seph++)
        {
            jge += Seph;
        }
        if(jge+3 > 1000)break;
    } 

    printf("%d\n",Fiph);   system("PAUSE");
    return 0;
} 

但结果18,原文为19.

Add:一篇数学解法的博客:(答案也为19)

https://blog.csdn.net/nka_kun/article/details/79789511

欢迎大家讨论,如理解错误,请务必指出,感谢!

关于2018年第九届蓝桥杯[C++省赛B组][第四题:测试次数]的疑问的更多相关文章

  1. 2018年第九届蓝桥杯B组题C++汇总解析-fishers

    2018年第九届蓝桥杯B组题C++解析-fishers 题型 第一题:第几天 第二题:明码 第三题:乘积尾零 第四题:测试次数 第五题:快速排序 第六题:递增三元组 第七题:螺旋折线 第八题:日志统计 ...

  2. 2018年第九届蓝桥杯题目(C/C++B组)汇总

    第一题 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 解题思路: 1.  判断2月有几天, ...

  3. 2018第九届蓝桥杯决赛(C++ B组)

    逛了大半个北京还是挺好玩de 第一题 标题:换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种. 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱. ...

  4. 2018年第九届蓝桥杯B组第四题:摔手机题解

    摔手机 摔手机 动态规划  在蓝桥杯的时候遇到一次 当时没有做对  看了题解也没明白  如今再次遇到这个类似的题目 于是拿出来补补吧 摔手机题目如下: 星球的居民脾气不太好,但好在他们生气的时候唯一的 ...

  5. 2018年第九届蓝桥杯【C++省赛B组】(未完)

    第一题 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容 利用excel更加快捷: 答案是125 ...

  6. 2018年第九届蓝桥杯国赛总结(JavaB组)

    懒更,之前的删了补一个国赛总结 记yzm10的第一次国赛(赛点:首都经贸大学) 第一次就拿到了国一,运气不要太好~(同组lz学长豪取国特orz) 从省赛一路水过来,总算有了点成绩.其实最后一题有些遗憾 ...

  7. 2018年第九届蓝桥杯【C++省赛B组】

    2标题:明码 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛.16点阵的字库把每个汉字看成是16x16个像素信息.并把这些信息记录在字节中. 一个字节可以存储8位信息,用32个字节就 ...

  8. 2018年第九届蓝桥杯C/C++A组省赛(最后一题)

    第十题 付账问题   [题目描述]    几个人一起出去吃饭是常有的事.但在结帐的时候,常常会出现一些争执.    现在有 n 个人出去吃饭,他们总共消费了 S 元.其中第 i 个人带了 ai 元.幸 ...

  9. 2018年第九届蓝桥杯【C++省赛B组】【第二题:明码】

    参考:https://blog.csdn.net/qq_34202873/article/details/79784242 #include <bits/stdc++.h> using n ...

随机推荐

  1. Android SDK开发与使用的那些事儿

    前言 最近由于工作需要,将应用里的部分功能独立了出来,封装成 SDK 提供给合作伙伴使用.由于经验不足,网上也没多少写这方面内容的文章,遇到了不少的坑,决定记录下来. SDK 其实,刚说到要写SDK也 ...

  2. maven配置以及在eclipse Mars2中的使用

    通过1.maven的作用 maven也是一种项目管理工具,主要能够将项目中的jar包移除,通过索引的方式调动本地或者远程仓库中的包,从而实现项目的构建.另一个作用能够应用于大型项目的分模块开发. 2. ...

  3. java多线程处理问题

    今天碰到个以前的线上bug需要处理下:问题是这样的,我们的app里面有个点赞的功能,点赞完后显示点赞人列表以及点赞数量,但是数量现在总是不准确.之后查看代码,发现点赞时候只是简单的向数据库添加了一条点 ...

  4. vs的一个奇葩错误 : 未能找到任何适合于指定的区域性或非特定区域性的资源...

    摘要: VS2005下进行开发的时候遇到的问头:未能找到任何适合于指定的区域性或非特定区域性的资源.请确保在编译时已将“xxx.Form1.resources”正确嵌入或链接到程序集“xxx”,或者确 ...

  5. POP动画[2]

    POP动画[2] 1:定制控制器间的转场动画. 源码有点多-_-!! // // RootViewController.h // Animation // // Copyright (c) 2014年 ...

  6. 浅析Linux操作系统是如何工作的(思维导图)

    SA***189 多任务计算机运转机制如下思维导图所示: 小结: Linux操作系统是一个在时钟的节拍下,各个模块紧密协作.密不可分的整体,而整个Linux系统都是建立在存储程序的基础之上,正是有了程 ...

  7. execl execv

    int execl(const char *path, const char *arg, ...); 函数说明 execl()其中后缀"l"代表list也就是参数列表的意思第一参数 ...

  8. Dictionary<Tkey.TValue>与SortedList

    一.概述 表示Key/Value集合,可以添加删除元素,允许按Key来访问元素.是Hashtable的泛型等效类. 它需要一个相等实现来确定键是否相等,可以使用实现了IEqualityComparer ...

  9. jquery ui tabs(选项卡)插件

    参考文档:http://www.css88.com/jquery-ui-api/tabs/ html代码: <div id="tabs"> <ul> < ...

  10. 021.11 IO流 序列流

    序列流:SequenceInputStream特点:流对象有序排列解决问题:将多个输入流合并成一个输入流,将多个源合并成一个源,对于多个源的操作会变简单. 构造函数参数就是输入流,一初始化就合并了多个 ...