所以,我准备参加一场比赛,我似乎找不出其中一个练习问题,我甚至把所有的数据都导入了。我知道如何在头脑中解决这个问题,只是不知道如何把它写进代码中。P.S.我在编程方面是个新手。
问题是:一只狗在一定的时间间隔内吠了多少次?
编辑:该程序应该能够为多条狗工作
给我的东西:
例如,只有一只狗。狗首先在0,然后在4,然后在8。诸若此类。我数的时隙是4-10,所以狗在4和8的时候叫,所以狗在4-10的时候总共叫了2次。
我不知道如何继续解决这个问题。
原始代码
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行将由两个整数组成,x和y。x是测量间隔的开始,y是测量的结束。
示例输入
2-狗狗
狗1的0 4--b和d
2 5
1-被测间隔数
4.8-x和y作为间隔。
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);
}
}发布于 2014-11-25 18:55:21
我做了一个新的代码,你在想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);
}
}https://stackoverflow.com/questions/27091714
复制相似问题