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

时间: 1ms        内存:128M

描述:

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

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

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

include <stdio.h>

#include <math.h>

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

int main()

{

int a;

scanf(“%d”,&a);

conversion(a) ; //将n转换为二进制输出

return 0;

}

输入:

正整数

输出:

对应的二进制数

示例输入:

6

示例输出:

110

提示:

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

var 
	a:array[1..32]of byte;
    n,x,i:longint;
begin
  	readln(x);
 	n:=0;
  	repeat   
	    inc(n);
	    a[n]:=x mod 2;
	    x:=x div 2;
  	until x=0;
  	for i:=n downto 1 do 
  		write(a[i]);
end.

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


#include <stdio.h>
#include <math.h>
void conversion(int n); //将n转换为二进制输出的递归函数声明
int main()
{
  int a;
  scanf("%d",&a);
  conversion(a) ; //将n转换为二进制输出
  return 0;
}
void conversion(int n)//将n转换为二进制输出的递归函数定义
{
    if(n==0||n==1)   //递归终止条件
	  printf("%d",n);
	else
	{
	  conversion(n/2);
	  printf("%d",n%2);
	} 
}

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