实验6_4_二进制转十进制
设计递归函数int convert(int n);用于将二进制数n转换为十进制数并返回。
输入与输出要求: 输入一个整数n,代表二进制数,其长度不大于10。输出转换后的十进制数,占一行。
输入样例:
101010
输出样例:
42
思路:
当n=0或n=1时,函数返回n,否则返回n%10+convert(n/10)*2 。
代码实现:
#include<stdio.h>
int convert(int n);
int main()
{
int n ;
scanf("%d",&n);
printf("%d\n",convert(n)) ;
return 0 ;
}
int convert(int n)
{
if(n==0||n==1) return n;
else return n%10+convert(n/10)*2;
}
实验6_5_二进制的位数
设计递归函数int countBinary(int n); 用于将非负十进制整数n转换成二进制形式,并返回该二进制数的位数。如十进制数13的二进制形式为1101,位数为4,那么调用countBinary(13)的结果为4。
要求同学们先写出该问题的递归定义式,再设计递归函数。
输入与输出要求: 输入一个非负整数n。输出求得的结果,如输入“13”,输出“4”,占一行。
输入样例:
13
输出样例:
4
代码实现:
#include<stdio.h>
int countBinary(int);
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",countBinary(n));
return 0 ;
}
int countBinary(int n)
{
int sum=0;
if(n>1)
{
n/=2;
sum=1;
}
else return 1;
return sum+countBinary(n);
}