分析:直接上吧,建议不要使用模板,否则没啥意义了。

代码如下:

===================================================================================================================================

#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<math.h>
using namespace std; const int MAXN = ; struct BigNum
{
int size, op;///长度, op=1表示非负数,-1表示负数
int num[MAXN];///数,下标从0开始 BigNum(){
op = size = ;
memset(num, false, sizeof(num));
}
void GetText(int n)
{
size = log10(n)+; for(int i=; i<size; i++)
{
num[i] = n % ;
n /= ;
}
}
void CarryBit()
{///进位
for(int i=; i<size; i++)
{
if(i+==size && num[i] >= )
{
num[i+] = ;
size += ;
} num[i+] += num[i] / ;
num[i] %= ;
}
}
void BorrowBit()
{///借位
for(int i=; i<size; i++)
{
if(num[i] < )
{
num[i+] -= ;
num[i] += ;
}
} while(size > && !num[size-])
size --;
}
bool operator < (const BigNum &a)const
{///非负数比较
if(size > a.size)return false;
if(size < a.size)return true; for(int i=; i<size; i++)
{
if(num[i] > a.num[i])return false;
if(num[i] < a.num[i])return true;
} return false;
}
BigNum operator * (const BigNum &a)const
{
BigNum result; result.size = size + a.size - ; for(int i=; i<size; i++)
for(int j=; j<a.size; j++)
{
result.num[i+j] += num[i] * a.num[j];
}
result.CarryBit(); return result;
}
friend BigNum operator - (const BigNum &_a, const BigNum &_b)
{
BigNum result, a=_a, b=_b; if(a < b)
{
result.op = -;
swap(a, b);
}
result.size = a.size; for(int i=; i<a.size; i++)
result.num[i] = a.num[i] - b.num[i];
result.BorrowBit(); return result;
}
friend BigNum operator ^(const BigNum &_a, const int &_m)
{
BigNum result, a=_a;
result.num[] = ;
int m = _m;
while(m)
{
if(m & )
result = result * a;
a = a * a; m >>= ;
} return result;
}
void Out()
{
if(op == -)printf("-");
for(int i=size-; i>=; i--)
printf("%d", num[i]);
printf("\n");
}
}; int main()
{
int a, b;
BigNum m, n; scanf("%d%d", &a, &b); m.GetText(a);
n.GetText(b); m = m ^ b;
n = n ^ a; BigNum ans = m - n; ans.Out(); return ;
}

a^b-b^a - SGU 112(高精度快速幂)的更多相关文章

  1. hdu 5187(高精度快速幂)

    zhx's contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  2. hdu 2462(欧拉定理+高精度快速幂模)

    The Luckiest number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  3. 洛谷试炼场-简单数学问题-P1045 麦森数-高精度快速幂

    洛谷试炼场-简单数学问题 B--P1045 麦森数 Description 形如2^P−1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果PP是个素数,2^P-1 不一定也是素数.到19 ...

  4. 读入 并查集 gcd/exgcd 高精度 快速幂

    ios_base::sync_with_stdio(); cin.tie(); ], nxt[MAXM << ], Head[MAXN], ed = ; inline void added ...

  5. HDU 4704 Sum (高精度+快速幂+费马小定理+二项式定理)

    Sum Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u Submit Status  ...

  6. Counting - SGU 117(快速幂)

    题目大意:求下面N个数里面有多少个数的M次方能整除K 代码如下: ======================================================== #include&l ...

  7. 高精度快速幂(Java版)

    import java.io.*; import java.math.*; import java.util.*; import java.text.*; public class Main { pu ...

  8. BZOJ_1005_ [HNOI2008]_明明的烦恼_(组合数学+purfer_sequence+高精度+分解因数+快速幂)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1005 一棵树有n个点,给出没给节点的度,如果没有限制则为-1,求共有多少种可能的树. 分析 蒟 ...

  9. ZOJ2317-Nice Patterns Strike Back:矩阵快速幂,高精度

    Nice Patterns Strike Back Time Limit: 20000/10000MS (Java/Others)Memory Limit: 128000/64000KB (Java/ ...

随机推荐

  1. 3DTouch

    3DTouch 一.主屏按压(Home Screen Quik Actions) 1.静态标签 在info.plist文件中新增项 关键字 意义 UIApplicationShortcutItems ...

  2. OC多文件开发介绍

    OC多文件开发介绍: 1.为什么要使用多文件? 在工作中,通常把不同的类放到不同的文件中,每个类的声明和实现分开,声明写在.h头文件中,实现写在相应的.m文件中去,类名是什么,文件名的前缀就是什么.假 ...

  3. DevExpress XtraGrid RepositoryItemCheckEdit 复选框多选的解决方法

    1. RepositoryItemCheckEdit默认有三种状态,选中状态.未选中状态和半选中状态(半选中状态通常用在TreeList中如果父节点下的子节点有选中的有未选中的,则父节点状态为半选中状 ...

  4. 生产者与消费者(三)---BlockingQueue

    前面阐述了实现生产者与消费者问题的两种方式:wait() / notify()方法 和 await() / signal()方法,本文继续阐述多线程的经典问题---生产者与消费者的第三种方式:Bloc ...

  5. 『重构--改善既有代码的设计』读书笔记---Duplicate Observed Data

    当MVC出现的时候,极大的推动了Model与View分离的潮流.然而对于一些已存在的老系统或者没有维护好的系统,你都会看到当前存在大把的巨大类----将Model,View,Controller都写在 ...

  6. Struts2文件配置 登陆页面

    Struts 版本号 struts-2.3.16.3 web.xml 配置 <?xml version=”1.0″ encoding=”UTF-8″?> <web-app versi ...

  7. [转] 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果 ---张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3804 去年盛夏之时, ...

  8. css 多出一行或多行后显示...的方法

    一行超出显示... .mui-ellipsis { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } 两行超出的显示. ...

  9. Java POI 导出EXCEL经典实现 Java导出Excel

    转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...

  10. SQLSERVER 中GO的作用详解

    具体不废话了,请看下文详解. ? 1 2 3 4 5 6 7 8 9 10 use db_CSharp go  select *,  备注=case  when Grade>=90 then ' ...