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);
}
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。