372. 超级次方
超级 次方
2023-09-14 09:06:52 时间
372. 超级次方
你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。
示例 1:
输入:a = 2, b = [3]
输出:8
示例 2:
输入:a = 2, b = [1,0]
输出:1024
示例 3:
输入:a = 1, b = [4,3,3,8,5,2]
输出:1
示例 4:
输入:a = 2147483647, b = [2,0,0]
输出:1198
这题写了两种解法,解题代码如下:
int de_pow(int a,int n){
int i=0;
int p=a;
if(n==0){
return 1;
}
a=1;
for(i=0;i<n;i++){
a=a*p;
a=a%1337;
}
return a;
}
int superPow(int a, int* b, int bSize){
a=a%1337;
if(a==1){
return 1;
}
printf("%d ",a);
int i;
int p=a;
a=de_pow(a,b[i]);
for(i=1;i<bSize;i++){
a=de_pow(a,10);
// printf("--%d ",a);
// printf("a %d b[i] %d",a,b[i-1]);
a=(de_pow(p,b[i])*a)%1337;
// printf("%d ",a);
}
// printf("%d %d",a,i);
return a;
}
解法二:
int de_pow(int a,int n){
int i=0;
int p=a;
if(n==0){
return 1;
}
a=1;
for(i=0;i<n;i++){
a=a*p;
a=a%1337;
}
return a;
}
int superPow(int a, int* b, int bSize){
a=a%1337;
if(a==1){
return 1;
}
int p=a;
// printf("%d ",p);
int i;
a=de_pow(a,b[bSize-1]);
for(i=bSize-2;i>=0;i--){
p=de_pow(p,10);
// printf("%d ",p);
int bz=de_pow(p,b[i]);
// printf("%d ",a);
a=(a*bz)%1337;
}
// printf("%d %d",a,i);
return a;
}
相关文章
- 免费制作gif的软件(mac、window),使用超级简单
- 【原】我是超级收银员,你敢来挑战吗
- Java实现 LeetCode 372 超级次方
- 超级小的web手势库AlloyFinger
- Qt开源作品44-超级曲线图表
- Python Django 常用命令:创建迁移文件/数据库建表/创建admin超级用户
- 【网址收藏】WIN10进入超级管理员账号(Administrator)
- Java微服务(二)【idea中文插件安装】(手把手编写,超级详细)
- Superior Scheduler:带你了解FusionInsight MRS的超级调度器
- 普通用户登录后, 修改系统配置文件需要切换到超级用户模式, 在终端窗口里面输入命令后回车: $sudo -s
- 【超级完整-更正版】北京理工大学计算机专业复试机试历年真题答案2003年-2018年
- 让00后疯狂的超级算法
- LEADTOOLS 22 套件 LEADTOOLS 超级套
- 对标大厂标准CSDN能力认证 and 超级实习生-大厂实习直通车
- Zabbix 超级详细的教你配置主动模式教程
- Linux超级超级管理pkexec权限完美解决/etc/sudoers、/etc/sudoers.d is world writable和kex_exchange
- 【大数据开发运维解决方案】超级详细的VMware16安装Redhat8&挂载镜像配置本地yum源&安装unixODBC教程