南邮NOJ上机系统#1015小明与选择题

小明与选择题

描述:
考试中,四选项单项选择题就是包含ABCD四个选项的选择题,其中有一个是正确的选项。

小明身经百战,总结出了一套考试四选项单项选择题的必胜法。他靠这套必胜法纵横天下,没有难得倒他的选择题。

简单归纳,小明的四选项单项必胜法就是:

三短一长选最长,
三长一短选最短,
参差不齐C无敌,
平平整整B无敌。

进一步的,小明在他的著作 《骗分导论(第九百九十六版)》 中提出,判断长短的依据就是:

当一个选项的长度大于四个选项的平均长度时,则认为这个选项长;
当一个选项的长度小于四个选项的平均长度时,则认为这个选项短。
因此,小明总结出:

只要四个选项中有三个都是长选项,则选择最短的那个选项;
只要四个选项中有三个都是短选项,则选择最长的那个选项;
如果四个选项都一样长,则选择B选项;
其他情况都是参差不齐情况,选择C选项。
现在,小明万事俱备,除了他并不会写代码 ,于是就靠你帮他实现一下他的骗分思路了。

输入:
输入数据包含一行四个整数,分别表示A、B、C、D四个选项的长度,题目保证四个整数的取值范围均在 [1,1e8]
之间。

输出:
输出一行一个大写字符(A, B, C 或 D),表示小明应该选择的选项。

样例输入:
1 1 100 100
样例输出:
C
样例输入:
100 1 1 1
样例输出:
A
样例输入:
1 1 1 1
样例输出:
B
样例输入:
100 100 100 1
样例输出:
D
注释:
注意选项大小写,例如输出 A 而不是 a。

C++代码实现

#include<iostream>

using namespace std;

int main(){
    int len[4];
    char opt[4]={'A','B','C','D'};
    for(int i=0;i<4;i++)
        cin>>len[i];
    if(len[0]==len[1] && len[0]==len[2] && len[0]==len[3]){
        cout<<"B";
        return 0;
    }

    float average=(len[0]+len[1]+len[2]+len[3])/4.0;
    int l=0;
    int s=0;
    int lnum,snum;
    int i;
    for(i=0;i<4;i++){
        if(len[i]>average){
            l++;
            lnum=i;
        }
        else if(len[i]<average){
            s++;
            snum=i;
        }
        else{        //若存在等于average,则必参差不齐
            cout<<"C"<<endl;
            return 0;
        }
    }

    if(l>s)          //3个long,1个short
        cout<<opt[snum];
    else if(l<s)    //1个long,3个short
        cout<<opt[lnum];
    else            //2个long,个short
        cout<<"C";
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值