📄 main.cpp
字号:
/***********************************************************************************
16. 设有8枚硬币a,b,c,d,e,f,g,h,其中有一枚硬币是伪造的。
真伪硬币的区别仅是重量不同,可能重,可能轻。今要求以天平为工具,用最少的
比较次数挑出伪造硬币,并鉴定它是重还是轻。
方案: (1) a,b,c VS d,e,f
(2) a,g,h VS d,b,c
***********************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
enum{a=0,b,c,d,e,f,g,h};
//硬币数量
#define N 8
//标准硬币的重量
#define WEIGHT 10
//保存硬币的重量
int weight[N];
void main()
{
int i;
int LW,RW;// 天平左右边的重量
for(i=0; i<N; i++)
weight[i] = 10;
//随即选择一枚硬币,改变其重量
{
int s;
srand(time(NULL));
s = rand()%N;
weight[s] += rand()%2*2-1;
}
//-------------------------------------
//输出随机数据
for(i=0; i<N; i++)
{
printf("%3d",weight[i]);
}
printf("\n");
//-------------------------------------
LW = weight[a] + weight[b] + weight[c];
RW = weight[d] + weight[e] + weight[f];
if(LW == RW)//a,g质量不同
{
LW = weight[a];
RW = weight[g];
if(LW == RW)
{
RW = weight[h];
if(LW > RW)
printf("h轻了\n");
else printf("h重了\n");
}
else if(LW > RW)
{
printf("g轻了\n");
}
else printf("g重了\n");
}
else if(LW > RW)
{
LW = weight[a] + weight[g] + weight[h];
RW = weight[d] + weight[b] + weight[c];
if(LW > RW)
{
LW = weight[a];
RW = weight[b];
if(LW == RW)
printf("d轻了\n");
else if(LW > RW)
printf("a重了\n");
}
else if(LW == RW)
{
LW = weight[e];
RW = weight[a];
if(LW == RW)
printf("f轻了\n");
else if(LW < RW)
printf("e轻了\n");
}
else//b,c重了
{
LW = weight[b];
RW = weight[a];
if(LW == RW)
printf("c重了\n");
else if(LW > RW)
printf("b重了\n");
}
}
else if(LW < RW)
{
LW = weight[a] + weight[g] + weight[h];
RW = weight[d] + weight[b] + weight[c];
if(LW > RW)//b,c轻了
{
LW = weight[a];
RW = weight[b];
if(LW == RW)
printf("c轻了\n");
else if(LW > RW)
printf("b轻了\n");
}
else if(LW == RW)//e,f重了
{
LW = weight[e];
RW = weight[a];
if(LW == RW)
printf("f重了\n");
else if(LW > RW)
printf("e重了\n");
}
else//a轻了,d重了
{
LW = weight[b];
RW = weight[a];
if(LW == RW)
printf("d重了\n");
else if(LW > RW)
printf("a轻了\n");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -