博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SGU112
阅读量:6894 次
发布时间:2019-06-27

本文共 1863 字,大约阅读时间需要 6 分钟。

题意:求a^b-b^a次,100以内。大数的-和*的模拟,用的模板,注意该模板中间和结果都不能出现负数。

#include
#include
using namespace std;const int ten[4]={1,10,100,1000};const int maxl=1000;struct bignum{ int d[maxl]; bignum(string s) { int len=s.size(); d[0]=(len-1)/4+1; int i,j,k; for(i=1;i
=0;i--) { j=(len-i-1)/4+1; k=(len-i-1)%4; d[j]+=ten[k]*(s[i]-'0'); } while(d[0]>1&&d[d[0]]==0)--d[0]; } bignum() { *this=bignum(string("0")); } string tostring() { string s(""); int i,j,temp; for(i=3;i>=1;i--)if(d[d[0]]>=ten[i])break; temp=d[d[0]]; for(j=i;j>=0;j--) { s=s+(char)(temp/ten[j]+'0'); temp%=ten[j]; } for(i=d[0]-1;i>0;i--) { temp=d[i]; for(j=3;j>=0;--j) { s=s+(char)(temp/ten[j]+'0'); temp%=ten[j]; } } return s; }}zero("0"),d,temp,mid1[20];bool operator < (const bignum &a ,const bignum &b){ if(a.d[0]!=b.d[0])return a.d[0]
0;i--)if(a.d[i]!=b.d[i])return a.d[i]
1)&&(c.d[c.d[0]]==0))--c.d[0]; return c;}bignum operator *(const bignum &a,const bignum &b){ bignum c; c.d[0]=a.d[0]+b.d[0]; int i,j,x; for(i=1;i<=a.d[0];i++) { x=0; for(j=1;j<=b.d[0];j++) { x=a.d[i]*b.d[j]+x+c.d[i+j-1]; c.d[i+j-1]=x%10000; x/=10000; } c.d[i+b.d[0]]=x; } while((c.d[0]>1)&&(c.d[c.d[0]]==0))--c.d[0]; return c;}string getstring(int a){ string ss; while(a!=0) { ss= char('0'+(a%10))+ss; a/=10; } return ss;}int main(){ int aa,bb; cin>>aa>>bb; if(aa==bb) { cout<<0<

转载于:https://www.cnblogs.com/yezekun/p/3925727.html

你可能感兴趣的文章
微信公众平台开发文档 获取关注者列表
查看>>
[若有所悟]我看日式外包项目软件过程
查看>>
java 学习笔记-数组(三)
查看>>
jQuery打印Html页面自动分页
查看>>
获取css规则
查看>>
vue的基础使用
查看>>
UIAlertView添加textField
查看>>
Keystone中间件WSGI环境变量总结
查看>>
通过phoenix在hbase上创建二级索引,Secondary Indexing
查看>>
SpringMVC静态资源拦截的问题
查看>>
maven jetty运行时,js无法保存
查看>>
动态规划------平均切分数组之和为两部分
查看>>
python中的I/O
查看>>
面向对象数据访问添加数据和删除数据
查看>>
关于链表的基本操作
查看>>
移动端UI设计的经验总结
查看>>
中间件
查看>>
二分查找
查看>>
软件流程图的画法(函数)
查看>>
一般函数指针和类的成员函数指针
查看>>