首页 > 代码库 > NYOJ 46 最小乘法次数

NYOJ 46 最小乘法次数

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=46

 

用类似于快速幂的方法做,注意1的时候是0;

 

#include <iostream>using namespace std;int main(){    int ase;    int num;    int res;    cin>>num;        while(num--)    {        res = 0;        cin>>ase;        if(ase==1)        {            cout<<0<<endl;            continue;        }        while(ase!=1)        {            if(ase%2==1)                res+=2;            else                res++;            ase = ase/2;        }        cout<<res<<endl;    }    return 0;}