打靶算法

#include <iostream>
#include <ctime>
using namespace std;

int sum;

int store[10];

void Output()

{

    for(int i = 9; i>=0; --i)

    {

       cout<<store[i]<<" ";

    }

   cout<<endl;

    ++sum;

}

void Cumput(int score, int num)

{

   if(score < 0 || score > (num+1)*10 ) //次数num为0~9

      return;

   if(num == 0) 

     {

        store[num] = score;

        Output();

        return;

     }

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

     {

        store[num] = i;

        Cumput(score - i, num - 1);

     }

}

int main(int argc, char* argv[])
 {

const  double  begin=(double)clock()/CLK_TCK;
Cumput(90, 9);
    const  double  end=(double)clock()/CLK_TCK;   

    cout<<"总数:"<<sum<<endl;
    cout<<"开始时间:"<<begin<<endl;
    cout<<"结束时间:"<<end<<endl;
    return 0;

  }

#includevoid main(){ int i1,i2,i3,i4,i5,i6,i7,i8,i9,i10;int count=0;for(i1=0;i1<10;i1++){ for(i2=0;i2<10;i2++){ for(i3=0;i3<10;i3++) { for(i4=0;i4<10;i4++) { for(i5=0;i5<10;i5++){ for(i6=0;i6<10;i6++) { for(i7=0;i7<10;i7++) { for(i8=0;i8<10;i8++){ for(i9=0;i9<10;i9++){ for(i10=0;i10<10;i10++) { if(i1+i2+i3+i4+i5+i6+i7+i8+i9+i10==90) count++; printf("%d",count); }}} } }} } }}}return;}跑很久:92 378 还是递归好用:
时间: 2024-08-01 03:55:35

打靶算法的相关文章

C#递归算法之打靶算法分析_C#教程

问题: 一个设计运动员打靶,靶一共10环,连开10环打中90环的可能性有多少?请用第归算法实现? 分析: 1)每次打靶可能的得分范围是什么? 靶有10个环,那么当打中时,分数可为1-10,如果未打中得分为0,所以每次打靶得分的范围为0-10,共有11中可能 2)计算有多少种可能最直接的方法: 打10次靶,分别记录这10次打靶过程,用循环来完成 for(int i1=0;i1<=10;i++) { for(int i2=0;i2<=10;i2++) { for(int i3=0;i3<=1

拆解滴滴大脑 叶杰平谈出行领域算法技术

ZD至顶网CIO与应用频道 02月23日 北京消息:2月23日消息,滴滴研究院副院长叶杰平近日在上海一场内部分享会上详细解读了滴滴大脑,这是外部首次窥探到较为完整的滴滴算法世界,并且一直潜水的产品"九霄"也首次露出真容. 滴滴出行研究院副院长叶杰平 滴滴大脑由三部分组成 叶杰平将滴滴大脑这个智能系统分为三部分,分别是大数据.机器学习和云计算. 其中大数据就像工业革命时代的煤一样举足轻重,人工智能需要数据进行训练,纵观应用级深度学习的成功案例,他们都获得了海量数据,像谷歌和Faceboo

python实现马耳可夫链算法实例分析

  本文实例讲述了python实现马耳可夫链算法的方法.分享给大家供大家参考.具体分析如下: 在<程序设计实践>(英文名<The Practice of Programming>)的书中,第三章分别用C语言,C++,AWK和Perl分别实现了马耳可夫链算法,来通过输入的文本,"随机"的生成一些有用的文本. 说明: 1. 程序使用了字典,字典和散列可不是一个东西,字典是键值对的集合,而散列是一种能够常数阶插入,删除,不过可以用散列来实现字典. 2. 字典的setd

php-perl哈希算法实现

 php-perl哈希实现算法–DJBX33A(Daniel J. Bernstein, Times 33 with Addition)APR哈希默认算法  代码如下: APR_DECLARE_NONSTD(unsigned int) apr_hashfunc_default(const char *char_key,                                                       apr_ssize_t *klen) {     unsigned i

openssl使用DSA算法生成签名

  命令: openssl> dgst -dss1 -sign C.pri -out signature.bin s.txt 解释 C.pri是DSA算法生成的私钥文件 s.txt是制作签名的原文 signature.bin是生成的签名文件 php中可以使用下面的方法察看签名内容  代码如下   <?php echo bin2hex(file_get_contents('signature.bin')); ?> 参考内容 消息摘要算法 支持的算法包括:MD2, MD4, MD5, MDC

求按百分比抽取数据算法

问题描述 求按百分比抽取数据算法 我有个需求 要求用百分比抽取数据以达到数据审阅的目的 我做了一个简单的程序但达不到要求 <?php header('Content-Type: text/html; charset=utf-8'); //抽取算法 for($kou=1;$kou<=100;$kou++){ $kou_count=0; for($i=1;$i<=100;$i++){ $key=($i)%(100/$kou); if( intval( $key ) == 0){ //echo

请教各位算法大神,acm一道题:赋权无向图的最小权值遍历用什么算法(存在负权值)?

问题描述 请教各位算法大神,acm一道题:赋权无向图的最小权值遍历用什么算法(存在负权值)? 1C 如题,问题是这样的:有一赋权无向连通图,可以从任意一结点出发,求遍历所有结点的最小权值路线.结束点也是任意的,每个节点也没有访问次数的限制,但必须每个节点都要被访问到.,想问一下用什么算法呢? 解决方案 可以参考djstera算法,求最短路径~借鉴其中的标记功能,只不过结束状态标志是所有节点均已遍历. 解决方案二: 可以参考djstera算法,求最短路径~借鉴其中的标记功能,只不过结束状态标志是所

RSA算法介绍

2.1.1     算法实现 首先, 找出三个数, p, q, r,其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数.p, q, r 这三个数便是 private key 接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1) 这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了 再来, 计算 n = pq m, n 这两个数便是 public key 编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a

PHP 四种基本排序算法的代码实现(1)

许多人都说算法是程序的核心,算法的好坏决定了程序的质量.作为一个初级phper,虽然很少接触到算法方面的东西.但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具.这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路. 前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序. $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序