zoukankan      html  css  js  c++  java
  • 蚂蚁感冒

    /*问题描述
      长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。
    
      每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。
    
      当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。
    
      这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。
    
      请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
    输入格式
      第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。
    
      接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数据代表的蚂蚁感冒了。
    输出格式
      要求输出1个整数,表示最后感冒蚂蚁的数目。
    样例输入
    3
    5 -2 8
    样例输出
    1
    样例输入
    5
    -10 8 -20 12 25
    样例输出
    3
    排除两端的不可能被感冒的后,要从第一个感冒的蚂蚁来考虑了
    
    有两种情况:
    
    一种是第一个感冒的蚂蚁的向左走
    
    向左走的这种情况要判断左端是否有蚂蚁向右走,向右走的肯定会和第一个感冒的碰面,被感冒,在判断右边的蚂蚁是否
    
    有向左走的,有则会被感冒
    
    另一种情况是第一个蚂蚁是向右走
    
    先判断感冒蚂蚁右边有多少是往左走的,往左走的会被感冒,在左边的有多少个蚂蚁向右走的,有则被感冒
    以感冒的蚂蚁为中心,两边向中间走的蚂蚁都会感冒*/
    package test;
    import java.util.*;
    public class 蚂蚁感冒 {
        public static void main(String arg[]){
            int count=0;
            Scanner input=new Scanner(System.in);
            int n=input.nextInt();
            int[] ant=new int[n+1];
            for(int i=1;i<=n;i++){
                ant[i]=input.nextInt();
            }
            if(n>2){
                for(int i=2;i<=n;i++){
                    if(Math.abs(ant[1])<Math.abs(ant[i])&&ant[i]<0){//距离大于感冒的蚂蚁且蚂蚁向左走
                        count++;
                    }
                    if(Math.abs(ant[1])>Math.abs(ant[i])&&ant[i]>0){//距离小于感冒的蚂蚁且蚂蚁向右走
                        count++;
                    }
                }
            }else{
                if(Math.abs(ant[1])>Math.abs(ant[2])&&ant[2]>0&&ant[1]<0) count++;
                if(Math.abs(ant[1])<Math.abs(ant[2])&&ant[1]>0&&ant[2]<0) count++;
            }
            if(count!=0)System.out.print(count+1);//加上原本就感冒的蚂蚁
            else System.out.print(1);
        }
    
    }
  • 相关阅读:
    交叉熵的数学原理及应用——pytorch中的CrossEntropyLoss()函数
    pytorch中如何使用DataLoader对数据集进行批处理
    Pytorch中的自动求导函数backward()所需参数含义
    Pytorch中的torch.cat()函数
    Pytorch中的squeeze()和unsqueeze()函数
    UBUNTU18.04安装网易云音乐并直接图标启动
    UBUNTU18.4环境下使用更好用的搜索引擎(无奈,只能起这样的标题)
    Ubuntu 18.04换国内源 中科大源 阿里源 163源 清华源
    共享栈
    C++(十七) — 宏代码、内联函数
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8595612.html
Copyright © 2011-2022 走看看