递归实现十进制数转十六进制数

典型的递归:

// 阶乘函数,n的阶乘

int func(int n)

{

if (n == 1)

return 1;

int res = n * func(n-1);

return res;

}

 

// 求斐波那契数列中第n个数的值

int feibo(int n)

{

if (n == 0 || n == 1)

return n;

int res = feibo(n-1) + feibo(n-2);

return res;

}

 

 

//递归实现输入十进制数,打印十六进制数

#include <stdio.h>

 

#define BASE 16

 

char num2char(int num)

{

switch (num)

{

case 0:

return '0';

case 1:

return '1';

case 2:

return '2';

case 3:

return '3';

case 4:

return '4';

case 5:

return '5';

case 6:

return '6';

case 7:

return '7';

case 8:

return '8';

case 9:

return '9';

case 10:

return 'A';

case 11:

return 'B';

case 12:

return 'C';

case 13:

return 'D';

case 14:

return 'E';

case 15:

return 'F';

}

}

 

void tran1(int n)

{

if (n == 0)

return;

// printf ("%d", n%2);

tran1(n/BASE);

printf ("%c", num2char(n%BASE));

return;

}

 

void tran2(int n)

{

if (n == 0)

return;

// printf ("%d", n%2);

tran2(n/BASE);

if (n%BASE > 9)

printf ("%c", n%BASE - 10 + 'A');

else

printf ("%d", n%BASE);

return;

}

 

int main()

{

int a = 12;

tran2(28);

printf ("\n");

return 0;

}

发布了26 篇原创文章 · 获赞 0 · 访问量 4230
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览