c语言 十进制转换二进制 递归

男娘i 2023-07-15 15:26 77阅读 0赞

本题要求实现一个函数,将正整数n转换为二进制后输出。

函数接口定义:

  1. void dectobin( int n );

函数dectobin应在一行中打印出二进制的n。建议用递归实现。

裁判测试程序样例:

  1. #include <stdio.h>
  2. void dectobin( int n );
  3. int main()
  4. {
  5. int n;
  6. scanf("%d", &n);
  7. dectobin(n);
  8. return 0;
  9. }
  10. /* 你的代码将被嵌在这里 */

我的答案:

  1. void dectobin(int n)
  2. {
  3. int result = 0;
  4. if (n == 0)
  5. {
  6. printf("0");
  7. }
  8. else if (n == 1)
  9. {
  10. printf("1");
  11. }
  12. else
  13. {
  14. dectobin(n / 2);//这里用到了递归
  15. result = n % 2;
  16. printf("%d", result);
  17. }
  18. }

这里要注意对递归的理解
这里如果n没有对于0,1的话
会一直递归
直到n等于0或1才停止
最后输出是从较小的n向较大n顺序输出的

发表评论

表情:
评论列表 (有 0 条评论,77人围观)

还没有评论,来说两句吧...

相关阅读