簡體   English   中英

用Java計算實例

[英]Counting instances in Java

因此,我正在為比賽做准備,我似乎無法找出其中的一個實踐問題。我可以導入所有數據。 我了解如何解決這個問題,而不是如何將其放入代碼中。 PS:我在編程方面是新來的。

問題:在一定的時間間隔內,狗吠幾次?

編輯:該程序應該能夠為多只狗工作

給我的東西:

  1. 狗的總數。 int numofdog = q.nextInt();

  2. 第一個樹皮的時間。

     int b = 0; 
  3. 每個樹皮之間的時間。

     int d = 4; 
  4. 計算樹皮數量的時間段。 4-10

因此,例如,只有1條狗。 狗首先吠叫為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);
}

}

更新的代碼 (仍在處理)

我也會在這里逐字張貼我的問題,以便我們所有人都可以理解

狗飼養員鮑勃(Bob Breeder bob),想知道在特定時間間隔內他的狗吠了幾下

輸入。 輸入的第一行將是單個int numofdog ,即bob擁有的狗的數量。 接下來的numofdog行將分別由兩個整數組成:b和d。 b是第一個樹皮的時間, d是兩次樹皮之間的時間。 的下一行是一個整數numberofintervals 下一個numberofintervals行將由兩個整數xy x是要測量的間隔的開始, y是結束

輸入示例

2-numofdogs

0 4-狗1的b和d

2 5-狗2的b和d

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);
} 



}

我編寫了一個新代碼,您正在考慮2條狗,如果有3條或3條以上,那么您的代碼將無法工作,因此數組是解決此問題的方法。

每只狗都有自己的bd變量。 用超過2只狗測試它,看看會發生什么。 如果發生任何錯誤,只需將其發布,我會對其進行檢查。

您的for循環並不是最佳選擇,因為您將0作為間隔開始,而不是xy (開始和結束)間隔。

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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM