Java中的实例计数

Java中的实例计数,java,algorithm,Java,Algorithm,所以,我正在准备一场比赛,但我似乎无法解决其中一个练习问题。我甚至导入了所有数据。我知道如何在头脑中解决这个问题,只是不知道如何将它转化为代码。另外,我是编程新手 问题是:狗在一定的时间间隔内吠叫多少次 编辑:该程序应能适用于多只狗 给我的东西: 狗的总数。 int numofdog=q.nextInt() 第一次吠叫的时间 int b = 0; 每次吠叫之间的时间 int d = 4; 计算吠声数量的时间段。4-10 例如,只有一只狗。狗先在0点吠叫,然后在4点吠叫,然后在8点吠叫。。

所以,我正在准备一场比赛,但我似乎无法解决其中一个练习问题。我甚至导入了所有数据。我知道如何在头脑中解决这个问题,只是不知道如何将它转化为代码。另外,我是编程新手

问题是:狗在一定的时间间隔内吠叫多少次

编辑:该程序应能适用于多只狗

给我的东西:

  • 狗的总数。 int numofdog=q.nextInt()

  • 第一次吠叫的时间

    int b = 0;
    
  • 每次吠叫之间的时间

    int d = 4;
    
  • 计算吠声数量的时间段。4-10

  • 例如,只有一只狗。狗先在0点吠叫,然后在4点吠叫,然后在8点吠叫。。等等我正在计算的时间间隔是4-10。所以狗在4点和8点吠叫。因此,在4-10分钟内,狗总共吠叫2次

    我不知道如何继续解决这个问题

    原始代码


    我编写了一个新代码,您考虑的是2只狗,如果有3只或更多的狗,那么您的代码将无法工作,因此数组是这个问题的解决方案

    每只狗都有自己的
    b
    d
    变量。用2只以上的狗进行测试,看看会发生什么。如果有任何错误发生,只要把它贴出来,我会检查的

    for循环不是最佳的,因为您将0作为间隔开始,而不是
    x
    y
    (开始和结束)间隔

    import java.io.*;
    import java.util.*;
    
    public class NumberOfBarksTest {
        public static void main(String[] args) {
            int numOfDog = 0;
            int b[] = new int[10]; //1st bark
            int d[] = new int[10]; //time between barks
            int numberOfIntervals = 0;
            int x[] = new int[10]; //start of interval
            int y[] = new int[10]; //end of interval
            int barks[] = new int[10];
            int totalBarks = 0;
            Scanner q = new Scanner(System.in);
    
            for(int i = 0; i < 10; i++) {
                barks[i] = 0;
            }
    
            numOfDog = q.nextInt();
    
            for(int i = 0; i < numOfDog; i++) {
                b[i] = q.nextInt();
                d[i] = q.nextInt();
            }
    
            numberOfIntervals = q.nextInt();
    
            for(int i = 0; i < numberOfIntervals; i++) {
                x[i] = q.nextInt();
                y[i] = q.nextInt();
            }
    
            for(int dog = 0; dog < numOfDog; dog++) {
                for(int i = x[dog]; i <= y[dog]; i += d[dog]) {
                    barks[dog]++;
                }
            }
    
            for(int i = 0; i < numOfDog; i++) {
                System.out.println("Barks for dog " + i + ": " + barks[i]);
                totalBarks += barks[i];
            }
            System.out.println("Total barks: " + totalBarks);
        }
    }
    
    import java.io.*;
    导入java.util.*;
    巴克斯特公共类编号{
    公共静态void main(字符串[]args){
    int numOfDog=0;
    int b[]=新int[10];//第1个
    int d[]=new int[10];//吠声之间的时间
    int numberofinterval=0;
    int x[]=new int[10];//间隔的开始
    int y[]=新int[10];//间隔结束
    int barks[]=新int[10];
    int totalBarks=0;
    扫描仪q=新扫描仪(System.in);
    对于(int i=0;i<10;i++){
    树皮[i]=0;
    }
    numOfDog=q.nextInt();
    for(int i=0;i对于(inti=x[dog];我想你差不多到了。现在你需要计算狗吠叫的次数。我建议先用铅笔和一张纸来设计你的算法(这可能还需要做数学运算),然后将其转换为代码。如果您的具体问题是如何将算法转换为代码,那么请提供您的算法,我们将为您提供帮助。另外:我不确定从这里开始该怎么做。这是一种新的做法。我在尝试比较数组时确实会出错。@LuiggiMendoza您能帮忙吗?您应该将代码转换为在 while(linestobeimported-->0)
    语句。否则,您只处理最后一种情况。很乐意提供帮助。下次尝试在纸上解决您的问题时,使用3个或更多示例,将您的逻辑放在那里,这样将更容易将逻辑转换为代码。
    import java.io.*;
    import java.util.*;
    
    public class dog {
    
    public static void main(String[] args) {
    
        int b1 = 0;
        int b2 = 0;
        int d1 = 0;
        int d2 = 0;
        int x1= 0;
        int y1= 0;
        int x2= 0;
        int y2= 0;
        int count = 0;
    
    
    Scanner q = new Scanner(System.in);
    
    int numofdog = q.nextInt();
    
    while (numofdog-->0) {
    
         b1 = q.nextInt();  // First Bark (Dog 1)
         d1 = q.nextInt();  // Time between barks (Dog 1)
         b2 = q.nextInt();  // First Bark (Dog 2)
         d2 = q.nextInt();  // Time between barks (Dog 2)
    
    }
    
        int numberofintervals = q.nextInt();
    
         while (numberofintervals -->0) {
         x1 = q.nextInt();  // Starting of interval
         y1 = q.nextInt();  // Ending of interval   
         x2 = q.nextInt();  // Starting of interval
         y2 = q.nextInt();  // Ending of interval   
    
         }
    
    int time [] = new int[10000];             // Make an array, to represent time
    for (int a = 0; a < time.length; a++) {
       time[a] = a + 1;
    
       if (time [a] % d1 == 0 || time [a] % d2 == 0) {
    
           count ++;
            }
    
        }
    System.out.println(count);
    } 
    
    
    
    }
    
    import java.io.*;
    import java.util.*;
    
    public class NumberOfBarksTest {
        public static void main(String[] args) {
            int numOfDog = 0;
            int b[] = new int[10]; //1st bark
            int d[] = new int[10]; //time between barks
            int numberOfIntervals = 0;
            int x[] = new int[10]; //start of interval
            int y[] = new int[10]; //end of interval
            int barks[] = new int[10];
            int totalBarks = 0;
            Scanner q = new Scanner(System.in);
    
            for(int i = 0; i < 10; i++) {
                barks[i] = 0;
            }
    
            numOfDog = q.nextInt();
    
            for(int i = 0; i < numOfDog; i++) {
                b[i] = q.nextInt();
                d[i] = q.nextInt();
            }
    
            numberOfIntervals = q.nextInt();
    
            for(int i = 0; i < numberOfIntervals; i++) {
                x[i] = q.nextInt();
                y[i] = q.nextInt();
            }
    
            for(int dog = 0; dog < numOfDog; dog++) {
                for(int i = x[dog]; i <= y[dog]; i += d[dog]) {
                    barks[dog]++;
                }
            }
    
            for(int i = 0; i < numOfDog; i++) {
                System.out.println("Barks for dog " + i + ": " + barks[i]);
                totalBarks += barks[i];
            }
            System.out.println("Total barks: " + totalBarks);
        }
    }