m的n次方

求m的n次方(优化时间复杂度) 面试官:求m的n次方,来优化一下时间复杂度 阅读详情

如果m和n都是整数,求m的n的次方(即m^n)的准确值。

Input

本题有多组输入数据。第一行是输入数据的组数T,每组数据占一行,为两个用空格隔开的整数m和n,1<=m<=100,0<=n<=100。

Output

对应每组数据,应输出一行,表示m^n的准确结果。

Sample Input

1
2 30

Sample Output

1073741824

Hint

可以考虑以下公式:

大正数乘法,跟N!方法一样

#include<iostream>
using namespace std;
int main()
{
	int T,n,m,sum[10010],i,f,t,j;
	scanf("%d",&T);
	while(T--)
	{
		sum[0]=1;
		cin>>n>>m;
		for(t=0,i=0;i<=m;i++)
			{
			for(f=0,j=0;j<=t;j++)
			{
				sum[j]=sum[i]*n+f;
				if(sum[j]>10000)
				{
					f=sum[j]/10000;
					sum[j]=sum[j]%10000;	
				}
				else f=0;
			}
			if(f!=0)
				sum[++t]=f;
			}
		printf("%d",sum[t]);
		for(i=t-1;i>=0;i--)
			printf("%04d",sum[i]);
		printf("\n"); 
	} 
}


求M的N次方-华为OJ题 RT: 正整数M 的N次方有可能是一个非常大的数字,我们只求该数字的最后三位 例1: 比如输入5和3 ,5的3次方125,则输出为125  例2: 比如输入2和10  2的10次方1024 ,则输出结果为24 例3: 比如输入111和5  111的5次方116850581551,则输出结果为551 unsigned int GetLastThreeNumOfRe 阅读详情

相关推荐

【国产MCU】-CH32V307-通用定时器(GPTM)-输入捕获模式测量脉冲

CH32V307的通用定时器模块包含一个16 位可自动重装的定时器(TIM2、TIM3、TIM4和TIM5),用于测量脉冲宽度或者产生特定频率的脉冲、PWM波等。可用于自动化控制、电源等领域。 输入捕获是通用定时器功能之一,一般用于测量频率和测量脉冲宽度。本文将详细介绍如何通用定时器的输入捕获功能。

视觉与物联智能 2773

【C语言】 m的n次幂

【C语言】 m的n次幂 #include<stdio.h> double app(double d,double e) { double i,c=1; for(i=1;i<=e;i++) { c=c*d; } return(c); } int main() { double m,n,a; while(scanf("%lf %lf",&m,&n)!=EOF) { a=app(m,n); printf("%.0f\n",a); } } 运行结果

wanshuai12138的博客 2611

Ubuntu 22.04/24.04 安装 ROS2 完整教程(Humble / Jazzy)

最后更新:2026年2月适用系统:Ubuntu 22.04 LTS(Jammy) / Ubuntu 24.04 LTS(Noble)适用架构:x86_64 / arm64(包括树莓派)

2401_84116277的博客 5284

C语言实现乘方运算(m的n次方)

其实C库中有实现乘方运算的函数,在math.h中的pow函数;这里不使用库函数,自己实现: 可以使用以下几种方法: 普通实现 位实现 递归实现 ////例子如下: #include <stdio.h> #include <stdlib.h> /* * 乘方运算,即m的n次方 (m^n) */ //普通实现 int power2(int m, int n) { int i = 1; int result = 1; if (n == 0) { return resul

weixin_44105987的博客 2万+

【】经典程序代码段】求m的n次方

不考虑高精度,一般有三种做法: 最笨的做法是把m连乘n-1次,这个就不写了。 第二种做法很好理解,是递归的快速幂,当n是偶数时,分解成两个n/2次方然后再乘起来,n是奇数的时候分解成两个n/2次方乘起来再多乘一个m; 第三种做法有点难得理解,是将n化成二进制,然后把1的那些数位乘起来; 经过测试,n很大的时候,还是第三种方法快。 #include using namespa

hsyoi的博客 5913

7-195 列出M的N次乘方表

分数 20全屏浏览题目切换布局作者 叶青单位 长春理工大学键盘输入正整数m和n,然后求出m的0次方一直到m的 n次方

dqd66的博客 620

如何在csdn上打出n的m次方

如何在csdn上打出n的m次方 nm 不要这样打:n ^ m ^。不能打空格。

Keven_11的博客 629

n阶矩阵的m次方

输入一个n阶矩阵,求它的m次方 例如输入4阶矩阵的2次方 4 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出 代码: #include <stdio.h> #include <string.h> #define N 100 int A[N][N], t[N][N], r[N][N]; int main() { int n, m, i, j, k; scanf_s("%d%d", &n, &m);//输入矩阵的阶数和幂次数

weixin_54095921的博客 1059

用C语言求n的m次方代码

今天做了求7的34次方的题。现在将它扩展至求n的m次方的C代码:#include #include #include int *getArray(const int);//用来获取存储n的m次方的结果的数组 void myPower(int *result, const int, const int);//用来计算n的m次方 int main(void) { int i; int n

duyulong12的专栏 7365

[解题技巧]m的n次方

题目:求解m的n次方 使用位运算进行处理: 将n拆解为每一位,只处理当前位为1的情况。 例如:n为13,二进制表示成1101,可以拆解成1000 + 0100 + 0000 + 0001 需要过滤当前位为0的情况,可以使用& 1的方式进行过滤。 代码: public int getMultiplier(int m, int n) { int sum = 1; ...

六月的尾巴 2455

bjfu1056 N的M次方

N的M次方 时间限制(C/C++):1000MS/3000MS          运行内存限制:65536KByte 总提交:696            测试通过:201 描述 你的任务是求N的M次方的结果。简单吧! 输入 输入有多组。每一组两个非负整数N(N 输出 每组结果占一行。结果在long long范围之内哦!!约定,0的0次方等于1。 样例

桑安琪的成长之路 630

计算整数M的N次方,输出结果

M为2-10的整数,结果可能超过long long 所能保存的最大值

qq_38915078的博客 643

C语言,函数递归实现计算n的m次方

要想使用函数递归实现n的m次方计算,可以设计函数时,可以先储存一个c值为1,每次调用c都要乘以一个n,再将m的值减一,还要将m的值当作if的判断条件,当m为0时,函数便不再继续调用,此时原本为1的c也就乘以了m次的n。int c = 0放在外面的原因是,如果放在函数里面,每次调用函数,c都会被重新赋值为1,便不能完成n乘积的累积。

二狗mao的博客 792

n的m次方 bjfu1056

描述 你的任务是求N的M次方的结果。简单吧! 输入 输入有多组。每一组两个非负整数N(N 输出 每组结果占一行。结果在long long范围之内哦!!约定,0的0次方等于1。 样例输入 2 2 样例输出 4 #include using namespace std; __int64 power(__int64 n,__int64 m) { __int64 ret=1;

operator456的专栏 762

【Java例题】1.2计算n的m次方

1 package study; 2 import java.util.*; 3 import java.math.*; 4 5 public class study { 6 public static void main(String[] args){ 7 System.out.println("输入一个n"); 8 ...

weixin_30642561的博客 181

用递归计算n的m次方

c语言

ITjingxinbao的博客 893

求M的N次方的最后三位

正整数M 的N次方有可能是一个非常大的数字,我们只求该数字的最后三位 例1: 比如输入5和3 ,5的3次方125,则输出为125  例2: 比如输入2和10  2的10次方1024 ,则输出结果为24 例3: 比如输入111和5  111的5次方116850581551,则输出结果为551 unsigned int  GetLastThr

gentlemenshi的专栏 978

N的M次方 马蹄集

N的M次方 号难度:白银 。时间限制:1秒 巴占用内存:64M 输入正整数N(

m0_62574889的博客 436

求解M的N次方的最后三位数

import java.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; public final class Demo { /* 功能: 求解M的N次方的最后三位数(M,N均大于10) 输入参数: int M:M > 10 int N:N > 10 返回值: M的N

闪闪的石头,不会疼痛 1959

dota全图工具过11

daota全图工具过11/hf/vs等平台,防降级

上一篇: HDU1597 find the nth digit
下一篇: swun 休想逃跑
YKY
YKY
博客等级 码龄14年 27粉丝 75原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值