• 百练 2705 跳绳游戏


    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述
    小朋友玩跳绳比赛,要计算在一分钟内跳了多少下.假设每秒钟跳一下,如果中途失败了,则要花三秒钟后才能开始重跳.一般小朋友跳绳一分钟要跳坏好几次.现在给出小朋友每次跳坏时已经跳的总数,求小朋友在一分钟内跳了多少下.(请注意分析示例数据.)
    输入
    第一行为n个小朋友
    其余各行,每行第一个整数是跳坏的次数m,其余m个整数是跳坏时累计跳了多少下.
    输出
    输出相应小朋友头一分钟内跳了多少下.
    样例输入
    6
    0
    3 12 23 45 
    1 17
    4 10 20 30 40
    5 10 20 30 40 58 
    6 10 20 30 40 47 60
    样例输出
    60
    51
    57
    48
    48
    47
    提示
    提示,在跳绳比赛时,你可能已经超时了,但自己还在计数,但裁判已经停止计时并得到成绩了.这里相当与自己计数.因此,并非跳坏的时候都是在前一分钟以内.请注意分析示例数据.
     
    有数学方法可知只需找出数据在60范围内的最大的数,然后判断 
    ①考虑57-59秒失败的特殊情况
    ②对于超出60秒的多余数据的处理
    如果不在这范围内,就满足60-3*i的统一规律。
     
    代码:
      #include "stdio.h"
    #include "malloc.h"
    int main()
    {  int i,j,n;
      scanf("%d",&j);
      while(j--)
     { scanf("%d",&n);
      int *a=(int *)malloc(sizeof(int)*n);
       for(i=0;i<n;i++)
        {scanf("%d",&a[i]);}
        printf("%d ",60-3*n);
      }
        return 0;
       
      }  错误代码,因为没考虑在57-60的特殊数据
     
    正确代码:
    #include "stdio.h"
    #include "malloc.h"
    int main()
    {  int i,j,n,k=0;
      int m=0;
      int r=0,f=0;
      scanf("%d",&j);
      while(j--)
    { scanf("%d",&n);
      int *a=(int *)malloc(sizeof(int)*n);     //申请动态数组
       for(i=0;i<n;i++)
        {scanf("%d",&a[i]);
       
          }

          f=0;
          for(i=0;i<n;i++)                               //寻找后面数据中的最大值,找到后跳出
         {  if(f!=-1&&((a[i])+3*(i+1))>59)
             {
                f=1;      
                break;
            
        
             }
          }
          //m=60-3*(1+k);
          if(f&&a[i]<=60&&((a[i])+3*i)<=60)         //①考虑57-59秒失败的特殊情况
          printf("%d ",a[i]);
          else
         //printf("%d ",a[k+1]);
        printf("%d ",60-3*i);        
      free(a);
      }
        return 0;
       
      }
  • 相关阅读:
    设计模式学习(十二) 责任链模式
    设计模式学习(十一) 享元模式
    设计模式学习(十) 外观模式
    设计模式学习(九) 装饰模式
    设计模式学习(八) 组合模式
    设计模式学习(七) 桥接模式
    设计模式学习(六) 代理模式
    设计模式学习(五) 适配器模式
    设计模式学习(四) 原型模型
    设计模式(三) 建造者模式
  • 原文地址:https://www.cnblogs.com/songmingtao/p/3224835.html
Copyright © 2020-2023  润新知