zoukankan      html  css  js  c++  java
  • 范围问题 【简单】

    问题 B: 终极密码(¯﹃¯)

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 376  解决: 151
    [提交][状态][讨论版]

    题目描述

    军训的休息时间,小葱班级做了一个叫“终极密码”的游戏,开始的start=0,规则是某一个同学从1~100中选一个号码,让后面的同学依次按学号顺序来猜(33号后面为1号)。end=100,start=0,例如1号同学选了一个数20,让后面的同学猜。范围是(end-start);2号同学猜 (100-0)/3+start=33,范围变成(0~33),3号男生猜(33-0)/3+start=11,这时start变为11,范围(11~33);……玩了一会后小葱发现,因为女生的胆子比较小,往往都是猜start+1,而男生是猜:范围/3+start,例如上述2号猜(100-0)/3+start=33。(如果范围小于3,男生也是加1 )已知小葱班里33个同学,学号是4,6,8,10,12,13,16,18,19,21,32为女生。要求输入一个男生学号,输出让女生唱歌的数字及女生学号(最多输10项)。

    输入

    例如小葱的学号

    15

    输出

    数字:1  女生学号:16

    数字:2  女生学号:18

    数字:3  女生学号:19

    数字:4  女生学号:21

    数字:14 女生学号:21

    数字:35 女生学号:18

    数字:36 女生学号:19

    数字:37 女生学号:21

    数字:58 女生学号:21

    注意格式!!!

    样例输入

    15

    样例输出

    1   16
    2   18
    3   19
    4   21
    14 21
    35 18
    36 19
    37 21
    58 21
     
     1 #include<stdio.h>
     2 int main()
     3 {
     4     int f(int a[],int ui);
     5     int n,s,e;//s - start e -end
     6     int flag,num,sex,temp,count;
     7     int a[]={4,6,8,10,12,13,16,18,19,21,32};
     8     while(scanf("%d",&n)!=EOF)
     9     {
    10         count=0;
    11         for(num=1;num<=100;num++)
    12         {
    13             s=0;e=100;
    14             flag=n;sex=1;//sex 1为女性,2为男性
    15             while(sex==1)
    16             {
    17                 flag++;
    18                 if(flag>33)
    19                     flag=1;
    20                 if(f(a,flag)==0)//如果flag位是女生
    21                     temp=s+1;
    22                 else//否则为男生
    23                 {
    24                     if(e-s<3)
    25                         temp=s+1;
    26                     else
    27                         temp=(e-s)/3+s;
    28                 }
    29                 if(temp>num)
    30                     e=temp;
    31                 else if(temp<num)
    32                     s=temp;
    33                 else if(temp==num)
    34                 {
    35                     sex=0;
    36                     if(f(a,flag)==0)//如果flag位是女生,则判断输出,如果flag位是男生,则中断num++
    37                     {
    38                         count++;
    39                         if(count<=10) 
    40                             printf("%-3d%d
    ",num,flag);
    41                         break;
    42                     }
    43                 }
    44             }
    45         }
    46     }
    47     return 0;
    48 }
    49 int f(int a[],int ui)
    50 {
    51     int sex,j;
    52     for(j=0;j<=10;j++)
    53     {
    54         if(ui != a[j])
    55             sex=1;
    56         else 
    57             return 0;
    58     }
    59     return sex;
    60 }
  • 相关阅读:
    SVN的import和export的使用
    windows下CreateDirectory创建路径失败的解决办法
    windows下查看rabbitmq服务是否启动
    tcp和udp的socket形式
    sockaddr_in 转成string
    Halcon系列(1) 菜鸟入门
    tesseract系列(3) -- tesseract训练
    tesseract系列(2) -- tesseract的使用
    springboot之redis
    hadoop格式化
  • 原文地址:https://www.cnblogs.com/wushuaiyi/p/3485859.html
Copyright © 2011-2022 走看看