为了账号安全,请及时绑定邮箱和手机立即绑定

题目是输入一个十进制数,将其化成的二进制数的位数打出来,如输入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;
}

正在回答

2 回答

是的,结果刚好是2/i,如输入12会发现数组中的数为11001100正好两遍

0 回复 有任何疑惑可以回复我~

2/i?


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

题目是输入一个十进制数,将其化成的二进制数的位数打出来,如输入17 输出5,由于可能大数位使用了数组,此代码中子函数return为什么是2/i

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信