1. #include "stdio.h"
  2. #include "iostream"
  3. #define MAXNUM 30
  4.  
  5. int FalseCoin(int coin[], int low, int heigh)
  6. {
  7. int i, sum1, sum2, sum3;
  8. int re;
  9.  
  10. sum1 = sum2 = sum3 = ;
  11. if (low + == heigh)
  12. {
  13. if (coin[low] < coin[heigh])
  14. {
  15. re = low + ;
  16. return re;
  17. }
  18. else
  19. {
  20. re = heigh + ;
  21. return re;
  22. }
  23. }
  24. if ((heigh - low + ) % == ) //n是偶数
  25. {
  26. for (i = low; i < low+(heigh - low) / ; i++)
  27. {
  28. sum1 = sum1 + coin[i];
  29. }
  30. for (i = low + (heigh - low) / + ; i < heigh; i++)
  31. {
  32. sum2 = sum2 + coin[i];
  33. }
  34. if (sum1 > sum2)
  35. {
  36. re = FalseCoin(coin, low + (heigh - low) / + , heigh);
  37. return re;
  38. }
  39. else
  40. {
  41. }
  42. }
  43. else
  44. {
  45. for (i = low; i < low+(heigh - low) / - ; i++)
  46. {
  47. sum1 = sum1 + coin[i];
  48. }
  49. for (i = low + (heigh - low) / + ; i < heigh; i++)
  50. {
  51. sum2 = sum2 + coin[i];
  52. }
  53. sum3 = coin[low + (heigh - low) / ];
  54. if (sum1 > sum2)
  55. {
  56. re = FalseCoin(coin, low + (heigh - low) / + , heigh);
  57. return re;
  58. }
  59. else if (sum1 < sum2)
  60. {
  61. re = FalseCoin(coin, low, low + (heigh - low) / - );
  62. return re;
  63. }
  64. else
  65. {
  66. }
  67. if (sum1 + sum3 == sum2 + sum3)
  68. {
  69. re = low + (heigh - low) / + ;
  70. return re;
  71. }
  72. }
  73. }
  74.  
  75. int main()
  76. {
  77. int coin[MAXNUM];
  78. int i, n;
  79. int weizhi;
  80. scanf("%d",&n);
  81. for (i = ; i < n; i++)
  82. {
  83. scanf("%d",coin[i]);
  84. }
  85. weizhi = FalseCoin(coin, , n - );
  86. printf("在上述%d个银币中,第 %d 个银币是假的!\n",n,weizhi);
  87. system("pause");
  88. return ;
  89. }

C++ 分治思想 真假银币的更多相关文章

  1. 分治思想的应用:C++实现快速排序和随机化的快速排序

    分治思想的应用:C++实现快速排序和随机化的快速排序 原创 2014年09月08日 14:04:49 标签: 快速排序 / 随机化快速排序 / 排序算法 / 数据结构 947 1. 快速排序时冒泡排序 ...

  2. Big Data(一)分治思想

    按照课程安排,接下来半年,我将会去上一个为期半年的大数据课程.第一课是马士兵老师机构的周老师所讲,这里单纯记录讲课的内容. 问题1: 我有一万个元素(比如数字或单词)需要存储? 如果查找某一个元素,最 ...

  3. 分治思想--快速排序解决TopK问题

    ----前言 ​ 最近一直研究算法,上个星期刷leetcode遇到从两个数组中找TopK问题,因此写下此篇,在一个数组中如何利用快速排序解决TopK问题. 先理清一个逻辑解决TopK问题→快速排序→递 ...

  4. bzoj3672/luogu2305 购票 (运用点分治思想的树上cdq分治+斜率优化dp)

    我们都做过一道题(?)货币兑换,是用cdq分治来解决不单调的斜率优化 现在它放到了树上.. 总之先写下来dp方程,$f[i]=min\{f[j]+(dis[i]-dis[j])*p[i]+q[i]\} ...

  5. 分治思想 特别常用 Codeforces Beta Round #80 (Div. 1 Only) D

    D. Time to Raid Cowavans time limit per test 4 seconds memory limit per test 70 megabytes input stan ...

  6. 分治思想求解X的M次幂方

    package main import ( "fmt" ) //递归形式分治求解 func power(x, m int) int { { } else { y := power( ...

  7. LeetCode Array Easy 53. Maximum Subarray 个人解法 和分治思想的学习

    Description Given an integer array nums, find the contiguous subarray (containing at least one numbe ...

  8. Codeforces 768B - Code For 1(分治思想)

    768B - Code For 1 思路:类似于线段树的区间查询. 代码: #include<bits/stdc++.h> using namespace std; #define ll ...

  9. SDUT OJ 周赛 找有毒的那杯水(思维逻辑 + 分治思想 )

    你打我啊 Time Limit: 500ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 最近看了一个非常好玩的题,如果有972杯水,其中有971个没有毒的,1个有 ...

随机推荐

  1. 2017年度最具商业价值人工智能公司TOP50 榜单发布

    2017年度最具商业价值人工智能公司TOP50 榜单发布 未来最有赚钱潜力的50个人工智能项目都在这里了. 经过了60年的发展,人工智能在2017年,正式走向应用的元年. 从今年起,人工智能首次被写入 ...

  2. web复制到剪切板js

    web复制到剪切板 clipboard.js 好使!开源项目,下载地址: https://github.com/zenorocha/clipboard.js 使用方法: 引入 clipboard.mi ...

  3. Linux 用户和组信息

    linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号.在使用linux操作系统时候,通常我们会遇到对多用户进行管理.比如: 用户账号的添加. ...

  4. MongoDB性能分析

    # mongostat --host=100.150.2.12 --port=27017 --authenticationDatabase=admin --username=root --passwo ...

  5. ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist

    MySQL版本:mysql5.7.21 修改用户权限,刷新权限表,报1146 mysql> flush privileges; ERROR 1146 (42S02): Table 'mysql. ...

  6. PHP批量生成底部带编号二维码(二维码生成+文字生成图片+图片拼接合并)

    PHP批量生成带底部编号二维码(二维码生成+文字生成图片+图片拼接合并) 需求: 输入编号如 : cb05-0000001  至 cb05-0000500 批量生成 以编号为名称的下图二维码,然后压缩 ...

  7. upc 组队赛18 STRENGTH【贪心模拟】

    STRENGTH 题目链接 题目描述 Strength gives you the confidence within yourself to overcome any fears, challeng ...

  8. 进程之间的通讯Queue简单应用

    #进程间通讯--Queue #Process有时需要通信的,操作系统提供了很多机制来实现进程之间的通讯 #而Queue就是其中一个 #1.Queue的使用 #可以使用multiprocessing模块 ...

  9. jQuery基础--选择器

    2. 选择器 2.1. 什么是jQuery选择器 jQuery选择器是jQuery为我们提供的一组方法,让我们更加方便的获取到页面中的元素.注意:jQuery选择器返回的是jQuery对象. jQue ...

  10. [Linux] 017 网络命令与挂载命令

    1. 网络命令:write 命令名称:write 命令所在路径:/usr/bin/write 执行权限:所有用户 语法:write [用户名] 功能描述:给用户发信息,以 Ctrl-d 保存结束 范例 ...