吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3127|回复: 10
收起左侧

[其他转载] 11.27 小白的每日一C

[复制链接]
吾爱姚吕婧妍 发表于 2018-11-27 21:00
本帖最后由 吾爱姚吕婧妍 于 2018-11-27 21:35 编辑



递归 逆序
[Asm] 纯文本查看 复制代码
#include<stdio.h>
void reverse(int n);

int main()
{
        int n; 
        printf("Inter a number you want to : ");
        scanf("%d",&n);
        reverse(n);
        return 0;
 } 
 
 void reverse(int n)
 {
         if(n<=9)
         printf("%d",n);
         else
         {
                 printf("%d",n%10);
                 reverse(n/10);
         }
 }



// 汉诺塔问题 一个明白算法 较难理解的c语言
[Asm] 纯文本查看 复制代码
/*汉诺塔问题是指:一块板上有三根针 A、B、C。
   A 针上套有 64 个大小不等的圆盘,按照大的在下、小的在上的顺序排列,要把这 64 个圆盘从 A 针移动到 C 针上,每次只能移
  动一个圆盘,移动过程可以借助 B 针。但在任何时候,任何针上的圆盘都必须保持大盘在下,小盘在上。从键盘输入需移动的圆盘个数,给出移动的过程。*/  
// 这里 A是搬动源 B是搬动目的 C是中间过度 
#include<stdio.h>
void hanio(int n,char a,char b,char c);
int main()
{
        int n;
        printf("You want to move : ");
        scanf("%d",&n);
        hanio(n,'A','B','C');
        return 0;
}

void hanio(int n,char a,char b,char c)
{
        if(n==1)
        printf("%c-->%c\n",a,b);
        else
        {
                hanio(n-1,a,c,b);
                printf("%c-->%c\n",a,b);
                hanio(n-1,c,b,a);
        }
}

// 这个问题 可以看着 原理来讲  有 三个 盘 A是搬动源 B是搬动目的 C是中间过度 
// 其实就是A中是按由大到小 自下向上排序 它的目的是将其移动到 另一个盘C上 并且 每次只能移动一个  还保证每个盘都是大的在下 小的在上
// 如果只有三个 那么首先a-->b a-->c b-->c a-->b c-->a c-->b a-->b
//  或者你自己想当n=3 首先要怎么办 然后你的函数 需要怎么变化 你就知道 为什么  它要改变 a,b,c 的值了 





发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

~零度 发表于 2018-11-27 21:13
本帖最后由 ~零度 于 2018-11-27 21:36 编辑

我记得写过这个代码,待会我发到这里。

算了,我刚刚看了我所有的作业没找到这个。但是找到一个变种汉诺塔问题的c++代码,你需要的话我可以分享到这里。

Aug.LuKai 发表于 2018-11-27 21:27
[C] 纯文本查看 复制代码
#include "stdafx.h"

int count=0;
void move(char A,char C)
{
	printf("%c->%c\n",A,C);
	count++;
}
	

void hnt(int n,char A,char B,char C)
{
	if(1==n)
	{
		move(A,C);
		}
	else
	{
		hnt(n-1,A,C,B);
	move(A,C);
	hnt(n-1,B,A,C);
			}
}


int main(int argc, char* argv[])
{	
	hnt(3,'A','B','C');//3表示三层
	printf("count=%d\n",count);
	return 0;
}
samen 发表于 2018-11-27 21:39
这个以前也没有搞太明白。。但是好像没怎么在农实践中用过。
 楼主| 吾爱姚吕婧妍 发表于 2018-11-27 21:42
samen 发表于 2018-11-27 21:39
这个以前也没有搞太明白。。但是好像没怎么在农实践中用过。

好滴 这些东西可能就是培养一下思维吧
linuxprobe 发表于 2018-11-27 23:08
好难啊,学不会。
dhs347 发表于 2018-11-28 11:25
学习了,楼主。。。
xake 发表于 2018-11-28 20:56
主要就是了解一下递归是怎么回事 初学的时候
 楼主| 吾爱姚吕婧妍 发表于 2018-11-28 20:57
xake 发表于 2018-11-28 20:56
主要就是了解一下递归是怎么回事 初学的时候

好的 谢谢兄弟给的提醒
 楼主| 吾爱姚吕婧妍 发表于 2018-12-2 17:37
~零度 发表于 2018-11-27 21:13
我记得写过这个代码,待会我发到这里。

算了,我刚刚看了我所有的作业没找到这个。但是找到一个变种汉诺 ...

感谢感谢
希望你能分享一下 最好是回帖不然忙的时候看不到 不好意思呀
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-20 06:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表