NYOJ46最小乘法次数
来源:互联网 发布:php 正则截取字符串 编辑:程序博客网 时间:2024/05/21 14:05
附上链接 http://acm.nyist.net/JudgeOnline/problem.php?pid=46
题的大概意思就是 给一个正整数n,求2 ^ n 最少的乘法次数(可以利用其前面求出来的结果,例如 求2 ^ 4 有 2 * 2 = 2 ^ 2 , 2 ^ 2 * 2 ^ 2 = 2 ^ 4.一共两次)
思路:对于2 ^ n来说,如果 整数n 如果是奇数, 就等于2 ^ (n - 1)这个数在乘上2,也就是2 ^ (n - 1)次数在加1.如果是偶数,就等于2 ^ (n / 2) * 2 ^(n / 2);也就是2 ^(n - 1)次数加1;
AC码(递归做的)
#include <stdio.h>
int MinCal(int n)
{
int s;
if(n == 1)
return 0;
if(n == 2)
return 1;
if(n & 1)
s = MinCal(n - 1) + 1;
else
s = MinCal(n / 2) + 1;
return s;
}
int main()
{
int m;
scanf("%d",&m);
while(m--)
{
int n;
scanf("%d",&n);
printf("%d\n",MinCal(n));
}
return 0;
}
0 0
- NYOJ46最小乘法次数
- NYOJ46最少乘法次数
- NYoj46 最少乘法次数
- nyoj46 最少乘法次数
- NYOJ46 最少乘法次数(二进制思想)
- 最小乘法次数
- 最小乘法次数
- 最小乘法次数
- 南阳 46 最小乘法次数
- NYOJ 46最小乘法次数
- nyoj46
- nyoj46
- nyoj46
- 南阳理工_最小乘法次数
- 幂的探究 快速幂 质因数分解 最小乘法次数
- 矩阵链乘法问题(给A1A2A3...An加括号,使之乘法次数最小)动态规划问题C++实现
- 矩阵链乘法问题(给A1A2A3...An加括号,使之乘法次数最小)动态规划问题C++实现
- 矩阵链乘法求两矩阵相乘所需的最小次数(算法3.6&3.7)
- cocos定时器分析
- 博弈知识汇总
- C# 可空类型
- POJ 题目分类
- 文件特殊权限:SUID, SGID, SBIT
- NYOJ46最小乘法次数
- poj1064
- TOOLS STORE OPENCART 2.X 主题模板 ABC-0628
- AndroidManifest.xml:Android应用的清单文件
- 用面向对象和数组做出奥特曼打小怪兽(奥特曼)
- js location跳转地址的区别,火狐下刷新问题
- Python 2.7环境下安装numpy和scipy
- 程序语言基础
- GCD使用经验与技巧浅谈