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

    }

    }

  • 相关阅读:
    java中的迭代器的含义
    angular-指令总结
    angular-ng-model
    angular-创建自定义的指令
    angular-$scope和$rootScope
    angular-过滤器
    Git-pull进入vim窗口解决办法
    Math常用方法
    全局变量和window属性上定义的变量
    透明点点的轮播图
  • 原文地址:https://www.cnblogs.com/fanguangdexiaoyuer/p/7206951.html
Copyright © 2011-2022 走看看