題目是輸入一個(gè)十進(jìn)制數(shù),將其化成的二進(jìn)制數(shù)的位數(shù)打出來,如輸入17 輸出5,由于可能大數(shù)位使用了數(shù)組,此代碼中子函數(shù)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;
}
2017-12-16
是的,結(jié)果剛好是2/i,如輸入12會(huì)發(fā)現(xiàn)數(shù)組中的數(shù)為11001100正好兩遍
2017-12-14
2/i?