您的位置:首页 > 其它

NYOJ-46-最少乘法次数

2016-11-24 00:18 183 查看
ACM模版

描述



题解

对n不断拆解即可,有些贪心的意味。

代码

#include <stdio.h>
#include <string.h>

int main()
{
int T;
scanf("%d", &T);

while (T--)
{
int n;
scanf("%d", &n);
if (n == 1)
{
printf("0\n");
continue;
}

int sum = 0;
if (n & 1)
{
n -= 1;
sum = 1;
}
while (n != 1)
{
n /= 2;
if (n & 1 && n != 1)
{
n -= 1;
sum++;
}
sum++;
}
printf("%d\n", sum);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数学相关