NYOJ-最少乘法次数

nyoj 最少乘法次数

http://acm.nyist.net/JudgeOnline/problem.php?pid=46

代码:

#include<stdio.h>
void f(int n,int &k)
{
	if(n==1)
		return;
	k++;
	if(n&1)
	    k++;
	n/=2;
	f(n,k);
	return;
}
int main()
{
	int t,n,k,i;
	scanf("%d",&t);
	while(t--)
	{
		k=0;
		scanf("%d",&n);
		f(n,k);
		printf("%d\n",k);
	}
	return 0;
}
时间: 2024-10-31 09:28:02

NYOJ-最少乘法次数的相关文章

最少乘法次数 NYOJ 46

1 #include<stdio.h>//最少乘法次数(46) 2 int main() 3 { 4 int i,x,m; 5 scanf("%d",&x); 6 while(x--){ 7 scanf("%d",&m); 8 i=0; 9 while(m!=1){ 10 if(m%2==1){ 11 i+=2; 12 } 13 else i+=1; 14 m/=2; 15 } 16 printf("%d\n",i);

最少乘法次数

最少乘法次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次: 输入 第一行m表示有m(1<=m<=100)组测试数据: 每一组测试数据有一整数n(0<n<=10000); 输出 输出每组测试数据所需次数s; 样例输入 3234 样例输出 122 最少乘法次数

NYIST 46 最少乘法次数

最少乘法次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次: 输入 第一行m表示有m(1<=m<=100)组测试数据:每一组测试数据有一整数n(0<n<=10000); 输出 输出每组测试数据所需次数s; 样例输入 3 2 3 4 样例输出 1 2 2 上传者 李剑锋 解题:快速幂.

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(&quo

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<<

nyoj 46-最少乘法次数 (递推)

46-最少乘法次数 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:5 submit:18 题目描述: 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次: 输入描述: 第一行m表示有m(1<=m<=100)组测试数据: 每一组测试数据有一整数n(0<n<=10000); 输出描述: 输出每组测试数据所需次数s; 样

1、对一个正整数算到1需要的最少操作次数

题1:实现一个函数,对一个正整数n,算得到1需要的最少操作次数.操作规则为:如果n为偶数,将其除以2:如果n为奇数,可以加1或减1:一直处理下去:例子:func(7) = 4,可以证明最少需要4次运算n = 7n-1 6n/2 3n-1 2n/2 1 要求:实现函数(实现尽可能高效) int func(unsign int n):n为输入,返回最小的运算次数.给出思路(文字描述),完成代码,并分析你算法的时间复杂度. java源程序: package bfgy.lab.work; import 

数据结构实验3(飞机最少环城次数问题)

使用图算法解决应用问题: 设有n个城市, 编号为0 ~ n - 1, m条航线的起点和终点由用户输入提供. 寻找一条换乘次数最少的线路方案. 使用有向图表示城市间的航线, 只要两城市之间有航班, 则图中这两点间存在一条权为1的边. 用Dijkstra算法实现求最少换乘次数. 在MGraph类中增加Choose函数以及Dijkstra函数即可. 实现代码: #include "iostream" #include "cstdio" #include "cst

最少的次数

2191: 最少的次数 Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 553  Solved: 73[Submit][Status][BBS] Description 这一天,成都东软学院ACM团队举办了一场游戏.游戏是这样的: 在桌上有一堆糖,其中有一颗糖与其他糖外观一模一样,但重量却明显轻.现在得知桌上共有N颗糖,还有一个天平,问最少需要多少次一定能准确的找出该糖?今天作为比赛中的你,相信这一问题应该不是什么难事,加油吧! Input 第一行包