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