Java 中炸弹的最小数量

javaserver side programmingprogramming

这里的问题陈述是用最少的炸弹数量杀死建筑物房间中的暴徒。房间标记为 1 到 n。暴徒在第一次炸弹袭击中受伤,在第二次炸弹袭击中死亡。当房间被炸时,暴徒冲向建筑物中最近的房间,特别是相邻的房间。我们必须计算炸毁房间所需的炸弹数量,以便杀死建筑物中的所有暴徒。

让我们通过示例来理解

输入 − int 房间数 = 3

输出 −所需的总炸弹数量

4

2 1 3 2

解释 − 这里所需的炸弹的最小数量是 4。假设我们首先轰炸第二个房间,暴徒会冲向第一个或第三个房间自救。然后我们轰炸第一个房间,在这里,一些在第二个房间袭击中受伤的暴徒会死亡,而躲在第一个房间的暴徒受伤后会冲向离他们最近的第二个房间。现在我们轰炸这里的第三个房间,轰炸第二个房间的暴徒躲了起来,所以他们在轰炸第三个房间时死了,而且躲在第三个房间的暴徒会冲向最近的房间,即第二个房间,最后我们轰炸这里的第二个房间,受伤的暴徒 来自第三个和第一个房间被杀,这就完成了我们的任务。

输入 − int 房间数 = 2

输出 −所需的总轰炸次数

3

2 1 2

解释 − 这里所需的最少炸弹数量是 3。让我们假设我们首先轰炸第二个房间,暴徒会冲向第一个房间自救。然后我们轰炸第一个房间,在这里,一些在第二个房间袭击中受伤的暴徒会死亡,而躲在第一个房间的暴徒受伤后会冲向离他们最近的第二个房间。现在我们轰炸这里的第二个房间。躲藏起来的第一个房间炸弹袭击者被杀死,这样我们的任务就完成了。

以下程序中使用的方法如下 −

  • 首先,房间数量作为用户的输入。

  • 所需炸弹数量计算为 (n+n/2),然后打印出来。

  • 然后我们轰炸建筑物的所有偶数房间并打印出来。

  • 之后我们轰炸建筑物的奇数房间,然后打印出来。

  • 最后,我们再次轰炸建筑物的偶数房间以结束轰炸过程,并将结果打印给用户。

示例

public class TP{
   public static void main(String[] args){
      int n = 8;
      System.out.println("所需轰炸总数");
      System.out.println(n + n / 2);
      for (int i = 2; i <= n; i += 2)
         System.out.print(i + " ");
      for (int i = 1; i <= n; i += 2)
         System.out.print(i + " ");
      for (int i = 2; i <= n; i += 2)
         System.out.print(i + " ");
   }
}

输出

如果我们运行上述代码,它将生成以下输出

所需的总轰炸次数
12
2 4 6 8 1 3 5 7 2 4 6 8

相关文章