题目是输入一个十进制数,将其化成的二进制数的位数打出来,如输入17 输出5,由于可能大数位使用了数组,此代码中子函数return为什么是2/i
#include<stdio.h>
#define size 70
int han(int a[],int n);
int weishu(int n);
int main()
{
int i;
int a[size]={0};
int n;
scanf("%d",&n);
han(a,n);
printf("%d\n",han(a,n));
for(i=0;i<70;i++)
{
printf("%d",a[i]);
}
}
int han(int a[],int n)
{
static int i=0;
if(n<2)
{
a[i]=n;
i++;
}
else
{
han(a,n%2);
han(a,n/2);
}
return i/2;
}