zoukankan      html  css  js  c++  java
  • 打靶问题 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能行有多少种?

    转载:http://mmdev.iteye.com/blog/1760112

    射击运动员10枪打90环的打法有多少种?用一段程序实现,将每种打法打印出来。(每法成绩均为整数,且在0到10环之间,可为0环也可为10环)。

    思路:使用递归思想

    首先考虑到一共要打十枪。则可以分三种情况来考虑:

    1.如果当前超过了十枪或者积分超过了给定值,则返回

    2.如果当前为第十枪,判断最后一枪的积分是否有可能达到给定值(0~10)

      如果可以,可能值加1,然后返回;否则直接返回。

    3.其他情况下,继续递归

    private static int sum = 0;

     

    private static int SCORE = 90;

     

    public static void main(String[] args) {

    compute(10,0);

    System.out.println(sum);

    }

     

    public static void compute(int num, int scores) {

    if (num <= 0 || scores > SCORE) {

    return;

    }

     

    if (num == 1) {

    if (scores + 10 >= SCORE) {

    sum++;

    return;

    }

    }

     

    for (int i = 0; i <= 10; i++) {

    compute(num - 1, scores + i);

    }

    }

  • 相关阅读:
    ubuntu apt 命令相关
    linux 常用命令
    sqli-labs 通关详解(sql注入知识点整理)
    运维手册2---查看机子的系统信息
    运维手册1---ssh命令:使用密钥文件进行登陆
    Java中的==和equals,常量池
    Java Persistence
    VSCode常用插件汇总
    VSCode常用插件之Auto Rename Tag使用
    ESLint 使用指南
  • 原文地址:https://www.cnblogs.com/fanguangdexiaoyuer/p/7206951.html
Copyright © 2011-2022 走看看