2018_蓝桥_pow()函数_次幂函数总结
2018-03-31 09:31
405 查看
c语言中pow()函数的用法和注意: 头文件:#include <math.h> pow() 函数用来求 x 的 y 次幂(次方),其原型为: double pow(double x, double y); pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = xy。 可能导致错误的情况: 如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。 如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。 如果底数 x 是 0,指数 y 是负数,可能会导致 domain error 或 pole error 错误,也可能没有;这跟库的实现有关。 如果返回值 ret 太大或者太小,将会导致 range error 错误。 错误代码: 如果发生 domain error 错误,那么全局变量 errno 将被设置为 EDOM; 如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。写算法提高快速幂题目,突发奇想地想用pow()函数了。真是太天真了。pow函数返回的是double类型的,能表示的数的范围也就是15,6位。而快速幂那一题有些数据光输入的数就十几位了,根本没法保存!给了40分,着实的够意思了。
下面是快速幂那一题:
.
算法提高 快速幂 时间限制:1.0s 内存限制:256.0MB 问题描述 给定A, B, P,求(A^B) mod P。输入格式 输入共一行。
第一行有三个数,N, M, P。输出格式 输出共一行,表示所求。样例输入2 5 3样例输出2数据规模和约定 共10组数据
对100%的数据,A, B为long long范围内的非负整数,P为int内的非负整数。
.
快速幂函数#include<iostream>
using namespace std;
int Pw(long long a,long long b,int c) {
int ret = 1;
a = a % c;
while (b>0) {
if (b%2==1) {//当b是奇数的时候
ret = ret * a%c;
}
b /= 2;;
a = a * a%c;
}
return ret;
}
int main() {
long long int a, b;
int c;
cin >> a >> b >> c;
cout << Pw(a, b, c) << endl;
return 0;
}
快速幂相关博客:点击打开链接
.
相关文章推荐
- 2018_蓝桥_exit(0)函数_退出函数总结
- 2018_蓝桥_setprecision()函数_保留小数位数函数总结
- 2018_蓝桥_next_permutation()函数_全排列函数总结
- 2018_蓝桥_sort()函数_排序函数总结
- C语言pow()函数:求x的y次方(次幂)
- C语言pow()函数:求x的y次方(次幂)
- JAVA问题总结之7--Pow、sin、sqrt、abs等常用数学函数调用
- 2018_蓝桥_动态规划_0/1背包总结
- torch中cmul()函数的用法总结
- 【IOS 开发学习总结-OC-7.1】C 语言特性——函数
- 水晶报表常用函数总结(不断更新中.......)
- 2017-2018-1 20155223 《信息安全系统设计基础》第14周学习总结
- 110个oracle常用函数总结
- 关于C++函数指针、函数回调的相关总结(重载与多态)
- STL中各容器之函数总结
- # 20162312 2017-2018 《程序设计与数据结构》第7周学习总结
- wait函数返回值总结,孤儿进程与僵尸进程[总结]
- 2017-2018-1 20155202 《信息安全系统设计基础》第2周学习总结
- 【总结】C语言中常见的内存操作函数汇总
- 2017-2018-1 20155331 《信息安全系统设计基础》第九周学习总结