• (java版)排队枪毙小约参与了犹余游戏, 在这个游戏中最后活下来的人才能获得胜利.游戏规则是这样的, n个玩家们围成一个圈, 从第一个玩家开始报数


    3. 排队枪毙
    小约参与了犹余游戏, 在这个游戏中最后活下来的人才能获得胜利.
    游戏规则是这样的, n个玩家们围成一个圈, 从第一个玩家开始报数
    报到m的人被枪毙, 下一个人接着从1开始报数.
    直到最后一个活下来的人获得胜利.
     
    
    小约现在开始选编号了, 已知参与的玩家数量为n, 被枪毙的数是m. 小约要选到几号位置才会活下来.
    (1 
    
     
    
    设计一个程序, 输入n和m, 输出最后的胜利者
     
    
    样例输入: 10 3
    样例输出: 4

    1. package package01;
    2. import java.util.Scanner;
    3. public class practise5_3 {
    4. public static void main(String[] args) {
    5. int n, m;
    6. int[] arr = new int[100];
    7. int num, flag = 0;
    8. Scanner scan = new Scanner(System.in);
    9. n = scan.nextInt();
    10. m = scan.nextInt();
    11. num = n;
    12. for (int i = 0; i < n; i++) {
    13. arr[i] = 1;
    14. }
    15. for (int i = 0; num-1>0 ; i++){
    16. if (i == n) i = 0;
    17. if (arr[i]==1) {
    18. flag++;
    19. if (flag == m) {
    20. arr[i] = 0;
    21. flag = 0;
    22. num --;
    23. }
    24. }
    25. }
    26. for (int i = 0; i < n; i++) {
    27. if (arr[i]==1) System.out.println(i + 1);
    28. }
    29. }
    30. }
    1. 2、继承 GenericServlet 类

      它实现了 Servlet 接口除了 service 的方法,不过这种方法我们极少用。

      public class ServletDemo2 extends GenericServlet {
      
          @Override
          public void service(ServletRequest arg0, ServletResponse arg1)
                  throws ServletException, IOException {
              System.out.println("heihei");
      
          }
      }

      3、继承 HttpServlet 方法

      public class ServletDemo3 extends HttpServlet {
      
          @Override
          protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                  throws ServletException, IOException {
              System.out.println("haha");
          }
      
          @Override
          protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                  throws ServletException, IOException {
              System.out.println("ee");
              doGet(req,resp);
          }
      
      }

      创建 Servlet 的第三种方法,也是我们经常用的方法。

      这里只简单讲 Servlet 的三种创建方式,关于更详细的应用我们后面再说。

      南离

         南离

        714***466@qq.com

         参考地址

      4年前 (2018-05-29)
    2.    612星球的一只天才猪

        223***7633@qq.com

      253

      关于 HttpServlet、GenericServlet 和 Servlet 的关系

      对于一个 Servlet 类,我们日常最常用的方法是继承自 HttpServlet 类,提供了 Http 相关的方法,HttpServlet 扩展了 GenericServlet 类,而 GenericServlet 类又实现了 Servlet 类和 ServletConfig 类。

      Servlet

      Servlet 类提供了五个方法,其中三个生命周期方法和两个普通方法,关于 Servlet 类的方法,不再赘述,我主要补充一下另外两个类的实现思路。

      GenericServlet

      GenericServlet 是一个抽象类,实现了 Servlet 接口,并且对其中的 init() 和 destroy() 和 service() 提供了默认实现。在 GenericServlet 中,主要完成了以下任务:

      •  将 init() 中的 ServletConfig 赋给一个类级变量,可以由 getServletConfig 获得;
      •  为 Servlet 所有方法提供默认实现;
      •  可以直接调用 ServletConfig 中的方法;

      基本的结构如下:

      abstract class GenericServlet implements Servlet,ServletConfig{
       
         //GenericServlet通过将ServletConfig赋给类级变量
         private trServletConfig servletConfig;
       
         public void init(ServletConfig servletConfig) throws ServletException {
      
            this.servletConfig=servletConfig;
      
            /*自定义init()的原因是:如果子类要初始化必须覆盖父类的init() 而使它无效 这样
             this.servletConfig=servletConfig不起作用 这样就会导致空指针异常 这样如果子类要初始化,
             可以直接覆盖不带参数的init()方法 */
            this.init();
         }
         
         //自定义的init()方法,可以由子类覆盖  
         //init()不是生命周期方法
         public void init(){
        
         }
       
         //实现service()空方法,并且声明为抽象方法,强制子类必须实现service()方法 
         public abstract void service(ServletRequest request,ServletResponse response) 
           throws ServletException,java.io.IOException{
         }
       
         //实现空的destroy方法
         public void destroy(){ }
      }

      以上就是 GenericServlet 的大致实现思想,可以看到如果继承这个类的话,我们必须重写 service() 方法来对处理请求。

  • 相关阅读:
    github参与开源项目并上传修改
    微信CRM系统在旅游行业的应用
    es查询限制10000,使用scroll
    archlinux 上使用 nvm 来管理npm版本
    java中的BigDecimal使用
    Matplotlib 主要参数配置
    【毕业设计】深度学习手势识别 - yolo python opencv cnn 机器视觉
    MySQL数据库#6
    c++ map/multimap
    netty系列之:JVM中的Reference count原来netty中也有
  • 原文地址:https://blog.csdn.net/m0_62574889/article/details/126276150