递归函数--进制转换(十进制转二进制)

递归函数--进制转换(十进制转二进制)

时间: 1ms        内存:128M

描述:

输入一个非负整数(十进制),调用递归函数输出此整数对应的二进制数。

函数声明如下:
void conversion(int n); //将n转换为二进制输出的递归函数声明

在以下程序的基础上,添加conversion函数的定义,使程序能够正确执行。
提交时,只需要提交conversion函数的定义代码即可。

#include <iostream>
using namespace std;
void conversion(int n); //将n转换为二进制输出的递归函数声明
int main()
{
  int a;
  cin>>a;
  conversion(a) ; //将n转换为二进制输出
  return 0;
}

输入:

正整数

输出:

对应的二进制数

示例输入:

6

示例输出:

110

提示:

参考答案(内存最优[920]):

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b,c=0,i=1;
    scanf("%d",&a);
    while(a)
    {
        b=a%2;
        c+=b*i;
        a/=2;
        i*=10;
    }
    printf("%d",c);
    return 0;
}

参考答案(时间最优[0]):


#include <iostream>
using namespace std;
void conversion(int n); //将n转换为二进制输出的递归函数声明
int main()
{
  int a;
  cin>>a;
  conversion(a); //将n转换为二进制输出
  return 0;
}void conversion(int n)//将n转换为二进制输出的递归函数定义
{
    if(n==0||n==1)   //递归终止条件
		cout<<n;
	else
	{
	  conversion(n/2);
	  cout<<n%2;
	} 
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注