递归算法新篇章——七夕情人节特备版

算法人生 专栏收录该内容
1 篇文章 0 订阅

首先呢,为何要写下这么有想(zuo)法(si)的一篇文章呢? 身为一个程序猿啊,总是会为身边的朋友总结出一些奇(nao)奇(ai)怪(wan)怪(qi)的论题,所以呢,下面就是背景阐述环节啦。
某日,在本猿常驻扎的一个微信群里面,有一个小伙伴说到,汉诺塔递归算法真是个令人头大的问题哇。本猿心想,这有很难,想当初本猿为汉诺塔递归输入了一个 n = 10000。。。从此就过上了与dos命令行朝夕相伴的日子。 
 嗯嗯嗯嗯,你说这跟七夕有毛线关系哇。我反手就是。。。一个赞。。。重点来了,敲黑板,划重点,划重点!!!
本猿所在的这个群里面,有一个妹子是个狂热的追星族,最喜51,爱屋及乌,亦喜51他D,51他dddddd..........近来亦沉迷于诸多不可言的小哥哥世界里。 于是,本猿,左脑一动,右脑一转,提出了如下惊动天地气死鬼神的神作:
某名花痴,有N名初始意中人,请按照顺位排序的方法,帮助这名花痴同学,将这些初始意中人,发展成为目标意中人。
这时候就要我们的汉诺塔大人出场咯,略略略略略略略略。。。。。
我是华丽丽的分割线 ~~~~~~~~~~~~~~

#include  <stdio.h>

int  i=1; // 记录意中人发展过程

// 将编号为 n 的意中人由 from 移动到 to
void  move( int  n, char  from, char  to)
    {
        printf( " %d : %d 号意中人从 %c 发展为 %c\n " ,i++,n,from,to);
    }

     void  hanoi( int  n, char  from, char  denpend_on, char  to) // n 个意中人由初始意中人移动到目标意中人 ( 利用潜在意中人 )
    {
         if  (n==1)
            move(1,from,to); // 只有一个意中人是直接将初始意中人移动到目标意中人
         else
        {
            hanoi(n-1,from,to,denpend_on); // 先将初始意中人的前 n-1 个意中人借助目的意中人移动到潜在意中人上
            move(n,from,to);               // 将剩下的一个意中人移动到目的意中人上
            hanoi(n-1,denpend_on,from,to); // 最后将潜在意中人里的 n-1 个意中人移动到目的意中人上
        }
    }
     void  main()
    {
        printf( " 请输入意中人的个数 :\n" );
        
         int  n;
        
        scanf( "%d" ,&n);
        
        printf( "A 代表为初始意中人群, B 代表为潜力意中人群, C 代表为目标意中人群  \n" );
        
         //A 代表为初始意中人, B 代表为潜力意中人, C 代表为目标意中人
         char  x='A',y='B',z='C';
        
        printf( " 意中人发展情况如下 :\n " );
        
        hanoi(n,x,y,z);
        
        printf( " 恭喜小主,贺喜小主,七夕快乐 ~ ~ ~\n " );
    }

瞧一瞧,看一看咯,看看我们的汉诺塔大人是怎么帮我们这位花痴同学解决这个难题的。。

结果分割线~~~~~~~~~~~~~~~ 
请输入意中人的个数:
4
A代表为初始意中人群,B代表为潜力意中人群,C代表为目标意中人群 
意中人发展情况如下:
 第1个:将1号意中人从A发展为B
 第2个:将2号意中人从A发展为C
 第3个:将1号意中人从B发展为C
 第4个:将3号意中人从A发展为B
 第5个:将1号意中人从C发展为A
 第6个:将2号意中人从C发展为B
 第7个:将1号意中人从A发展为B
 第8个:将4号意中人从A发展为C
 第9个:将1号意中人从B发展为C
 第10个:将2号意中人从B发展为A
 第11个:将1号意中人从C发展为A
 第12个:将3号意中人从B发展为C
 第13个:将1号意中人从A发展为B
 第14个:将2号意中人从A发展为C
 第15个:将1号意中人从B发展为C
 恭喜小主,贺喜小主,七夕快乐~ ~ ~


恭喜小主,贺喜小主啊,解决了世纪难题,造福成千上万的。。。。。

在本猿兴致满满的将本猿的世纪算法上表给群里的各位大佬查看时,却招到了群里各位大佬的无情的嘲笑!!!what鬼啊!!!搞笑啊!!!我不要脸的吗???我的心愿是:世界和平啊!!!

诸位看官若赏脸前来本猿的小博一观,可否夸夸小猿呢?毕竟小猿还是一个好猿呢,嘿嘿嘿




  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值