2.递归-求一个整数(十进制)的二进制

2021/6/25 23:30:59

本文主要是介绍2.递归-求一个整数(十进制)的二进制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#include <stdio.h>
int to_binary(int a);
int main()
{
  
  //求一个整数(十进制)的二进制(循环语句版)
  int a = 1234;
  int result;
  int shang;

  int size;
  int re;
  int b = a;
  int c = a;
  //获取int数组的长度
    while( ( re = b / 2 ) != 0  )
    {
        b = b / 2; 
        size++;

    }
    //printf("size: %d\n", size + 1);
    int stack[size+1];
    int index = 0;
    
    //将数据装载到数组中
    while(1)
    {  

      if( (shang = a / 2) == 0)
      {
        result = a % 2;
        //printf("%d\n",result );
        stack[index++] = result;
        break;
      }else{
        result = a % 2;
        //printf("%d\n",result );
        stack[index++] = result;
        a = a / 2;
      }

    }

      //打印数组
      printf("循环方式:");
      for (int i = size; i >= 0; i--)
      {
          printf("%d", stack[i]);
            
      }
      printf("\n");
      printf("递归方式:");
      
      to_binary(c);
      printf("\n");


    return 0;
}

int to_binary(int a)
{
    int r = a % 2;
    if(a / 2 != 0)
      to_binary(a / 2);

    printf("%d",r );

    return 0;
    
}

 



这篇关于2.递归-求一个整数(十进制)的二进制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程