NYOJ 46 最少乘法次数

#include<stdio.h>
int f(int n)
{
  int s;
  if(n==1)
    s=0;
  else if(n==2)
    s=1;
  else if(n%2==0)
    s=f(n/2)+1;
  else
    s=f(n-1)+1;
  return s;
}
int main()
{
  int num,a;
  scanf("%d\n",&num);
  while(num--)
  {
    //int a;
    scanf("%d",&a);
    printf("%d\n",f(a));
  }
}

posted @ 2015-07-03 18:55  小松鼠。  阅读(106)  评论(0编辑  收藏  举报