zoukankan      html  css  js  c++  java
  • C++ 分治思想 真假银币

     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 = 0;
    11 if (low + 1 == heigh)
    12 {
    13 if (coin[low] < coin[heigh])
    14 {
    15 re = low + 1;
    16 return re;
    17 }
    18 else
    19 {
    20 re = heigh + 1;
    21 return re;
    22 }
    23 }
    24 if ((heigh - low + 1) % 2 == 0) //n是偶数
    25 {
    26 for (i = low; i < low+(heigh - low) / 2; i++)
    27 {
    28 sum1 = sum1 + coin[i];
    29 }
    30 for (i = low + (heigh - low) / 2 + 1; i < heigh; i++)
    31 {
    32 sum2 = sum2 + coin[i];
    33 }
    34 if (sum1 > sum2)
    35 {
    36 re = FalseCoin(coin, low + (heigh - low) / 2 + 1, heigh);
    37 return re;
    38 }
    39 else
    40 {
    41 }
    42 }
    43 else
    44 {
    45 for (i = low; i < low+(heigh - low) / 2 - 1; i++)
    46 {
    47 sum1 = sum1 + coin[i];
    48 }
    49 for (i = low + (heigh - low) / 2 + 1; i < heigh; i++)
    50 {
    51 sum2 = sum2 + coin[i];
    52 }
    53 sum3 = coin[low + (heigh - low) / 2];
    54 if (sum1 > sum2)
    55 {
    56 re = FalseCoin(coin, low + (heigh - low) / 2 + 1, heigh);
    57 return re;
    58 }
    59 else if (sum1 < sum2)
    60 {
    61 re = FalseCoin(coin, low, low + (heigh - low) / 2 - 1);
    62 return re;
    63 }
    64 else
    65 {
    66 }
    67 if (sum1 + sum3 == sum2 + sum3)
    68 {
    69 re = low + (heigh - low) / 2 + 1;
    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 = 0; i < n; i++)
    82 {
    83 scanf("%d",coin[i]);
    84 }
    85 weizhi = FalseCoin(coin, 0, n - 1);
    86 printf("在上述%d个银币中,第 %d 个银币是假的!
    ",n,weizhi);
    87 system("pause");
    88 return 0;
    89 }
  • 相关阅读:
    C# using
    Spring框架
    is
    pycharm破解197
    python安装197
    python3.7.0安装197
    centos7 minimal 安装mysql197
    centos7 minimal 安装 &网络配置197
    ruby安装卸载197
    redis安装 卸载 启动 关闭197
  • 原文地址:https://www.cnblogs.com/zhibei/p/11145995.html
Copyright © 2011-2022 走看看