100c之17:平分七筐鱼

本文详细阐述了一个算法,解决三个渔夫如何在不移动鱼的情况下,将21只箩筐中的鱼平分为三份的问题。通过使用三乘三的数组,作者实现了将7筐满鱼、7筐半鱼和7筐空筐平分为三组,确保每组有3.5筐鱼和七个筐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml version="1.0" encoding="utf-8"?> 100c之17:平分七筐鱼

100c之17:平分七筐鱼

Table of Contents

1 问题

加以丙三位渔夫出海打渔,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满鱼,还有7筐只装了半筐鱼,另外七筐没有鱼。由于他们没有秤只好认为这七筐鱼的重量是相等的。七个半筐鱼的重量是相等的。在不把鱼到处来的前提下,怎样将鱼和筐平分为三份?

2 分析

目标:每人3.5桶鱼,7个桶。同时要避免重复方案

3 解决方案

使用一个三乘三的数组保存最终的结果。

 1:  /**
 2:   * @file   017average7fish.c
 3:   * @author Chaolong Zhang <emacsun@163.com>
 4:   * @date   Fri May 17 19:58:10 2013
 5:   * 
 6:   * @brief  加以丙三位渔夫出海打渔,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满鱼,还有7筐只装了半筐鱼,另外七筐没有鱼。由于他们没有秤只好认为这七筐鱼的重量是相等的。七个半筐鱼的重量是相等的。在不把鱼到处来的前提下,怎样将鱼和筐平分为三份?
 7:   *  
 8:   * 最终的结果是: 每人3.5筐鱼和七个筐。
 9:   */
10:  #include <stdio.h>
11:  int main(int argc, char *argv[])
12:  {
13:    int a[3][3],count;
14:    int i,j,k,m,n,flag;
15:    for (i=0; i <= 3; ++i)
16:    {
17:      a[0][0] = i;
18:      for (j=i; j <= 7-i && j<=3; ++j)
19:      {
20:        a[1][0] = j;
21:        if ((a[2][0]=7-j-a[0][0])>3) continue;
22:        if (a[2][0]<a[1][0]) break;
23:        for (k=1; k <= 5; k+=2)
24:        {
25:          a[0][1] =k;
26:          for (m=1; m < 7-k; m+=2)
27:          {
28:            a[1][1]=m;
29:            a[2][1]=7-k-m;
30:            for (flag=1,n=0; flag && n<3; n++)
31:            {
32:              if (a[n][0]+a[n][1]<7 && a[n][0]*2+a[n][1]==7)
33:              {
34:                a[n][2] = 7 - a[n][0] - a[n][1];
35:              }
36:              else flag=0;
37:            }
38:            if(flag)
39:            {
40:              printf ("No.%d method     Full basket  semi-basket Empty \n", ++count);
41:              for (n=0; n < 3; n++)
42:              {
43:                printf ("fisher %c:  %d  %d  %d\n",'A'+n, a[n][0],a[n][1],a[n][2]);
44:              }
45:            }
46:          }
47:        }
48:      }
49:    }
50:    return 0;
51:  }

Date:

Author: emacsun

Org version 7.8.02 with Emacs version 23

Validate XHTML 1.0

转载于:https://www.cnblogs.com/chaolong/archive/2013/05/18/3086086.html

内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值