首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的实例计数

Java中的实例计数
EN

Stack Overflow用户
提问于 2014-11-23 17:04:22
回答 1查看 198关注 0票数 1

所以,我准备参加一场比赛,我似乎找不出其中一个练习问题,我甚至把所有的数据都导入了。我知道如何在头脑中解决这个问题,只是不知道如何把它写进代码中。P.S.我在编程方面是个新手。

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

编辑:该程序应该能够为多条狗工作

给我的东西:

  1. 狗的总数。int = q.nextInt();
  2. 第一次树皮的时间。 int b= 0;
  3. 每只树皮之间的间隔时间。 int d= 4;
  4. 计算吠声次数的时隙。4- 10

例如,只有一只狗。狗首先在0,然后在4,然后在8。诸若此类。我数的时隙是4-10,所以狗在4和8的时候叫,所以狗在4-10的时候总共叫了2次。

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

原始代码

代码语言:javascript
运行
复制
import java.io.*;
import java.util.*;

public class dog {

public static void main(String[] args) {

    int b = 0;
    int d = 0;
    int x = 0;
    int y = 0;
    int count = 0;
    int m =0;
Scanner q = new Scanner(System.in);

int numofdog = q.nextInt();

while (numofdog-->0) {

     b = q.nextInt();  // First Bark
     d = q.nextInt();  // Time between barks
     x = q.nextInt();  // Starting of interval
     y = q.nextInt();  // Ending of interval    





int time [] = new int[y];             // Make an array
for (int a = 0; a < time.length; a++) {
   time[a] = a + 1;

   if (time [a] % d == 0 ) {

       count ++;
        }
    }
} 


System.out. println(count);
}

}

更新的代码(仍在编写中)

我也会把我的问题逐字逐句地张贴在这里,这样我们大家都能理解

养狗的鲍勃,想知道他的狗在一定的时间间隔内叫了多少次。

输入。输入的第一行将是一个int numofdog,即bob拥有的狗数。下一个numofdog线将由两个整数组成:B和d。b是第一次树皮的时间,d是树皮之间的时间。下一行是一个整数numberofintervals。下一个numberofintervals行将由两个整数组成,xyx是测量间隔的开始,y是测量的结束。

示例输入

2-狗狗

狗1的0 4--b和d

2 5

1-被测间隔数

4.8-x和y作为间隔。

代码语言:javascript
运行
复制
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);
} 



}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-25 18:55:21

我做了一个新的代码,你在想2条狗,如果有3条或更多的狗,那么你的代码就不能工作,所以数组是这个问题的解决方案。

每条狗都有自己的bd变量。对超过2只狗进行测试,看看会发生什么。如果发生任何错误,只需张贴它,我将检查它。

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

代码语言:javascript
运行
复制
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);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27091714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档