高精度模板(修改中)

这个是一个高精度的模板,还在完成中。。。

  1 #include<iostream>
  2 #include<algorithm>
  3 #include<cstdio>
  4 #include<cstdlib>
  5 #include<cmath>
  6 #include<cstring>
  7 #include<vector>
  8 #define xh(a,b,c)for(int a=(b);a<=(c);a++)
  9 #define dxh(a,b,c)for(int a=(b);a>=(c);a--)
 10 #define bxh(a,b)for(int a=beg[b];a;a=ne[a])
 11 #define hy(a)memset(a,0,sizeof(a))
 12 #define sqr(a) (a)*(a)
 13 #define Max(a,b) a=max(a,b)
 14 #define Min(a,b) a=min(a,b)
 15 #define ll long long
 16 #define lof double
 17 #define ch char
 18 using namespace std;
 19 void qin(int &x){
 20     int base=1,num;
 21     ch c=getchar();
 22     while(!(c==‘-‘||c>=‘0‘&&c<=‘9‘||c==EOF))c=getchar();
 23     if(c==EOF)exit(0);
 24     if(c==‘-‘)base=-1,c=getchar();
 25     num=c-‘0‘;
 26     c=getchar();
 27     while(c>=‘0‘&&c<=‘9‘){
 28         num*=10;
 29         num+=c-‘0‘;
 30         c=getchar();
 31     }
 32     x=num*base;
 33 }
 34 ch integ[50];
 35 void qout(int x){
 36     if(x<0)putchar(‘-‘),x=-x;
 37     int len=0;
 38     do{
 39         integ[len++]=x%10+‘0‘;
 40         x/=10;
 41     }while(x);
 42
 43     while(len--){
 44         putchar(integ[len]);
 45     }
 46 }
 47 struct bigint{
 48         vector<int> v;
 49         bigint(long long a = 0){
 50             *this = a;
 51         }
 52         bigint operator =(long long a){
 53             v.clear();
 54             while(a){
 55                 v.push_back(a%10000);
 56                 a/=10000;
 57             }
 58             return *this;
 59         }
 60         bigint operator =(string a){
 61             v.clear();
 62             int x,len=(a.length()-1)/4+1;
 63             xh(i,0,len-1){
 64                 int e,s;
 65                 e=a.length()-i*4;
 66                 s=max(0,e-4);
 67                 sscanf(a.substr(s,e-s).c_str(),"%d",&x);
 68                 v.push_back(x);
 69             }
 70             return *this;
 71         }
 72         bigint operator +(bigint &b){
 73             bigint c;
 74             c.v.clear();
 75             for(int i=0,g=0;;i++){
 76                 if(g==0&&i>=v.size()&&i>=b.v.size())break;
 77                 int x=g;
 78                 if(i<v.size())x+=v[i];
 79                 if(i<b.v.size())x+=b.v[i];
 80                 c.v.push_back(x%10000);
 81                 g=x/10000;
 82             }
 83             return c;
 84         }
 85         bigint operator *(bigint &b){
 86             bigint c;
 87             c.v.clear();
 88             c.v.resize(v.size()+b.v.size());
 89             for(int i=0;i<v.size();i++)
 90                 for(int j=0;j<b.v.size();j++){
 91                     c.v[i+j]+=b.v[j]*v[i];
 92                     c.v[i+j+1]+=c.v[i+j]/10000;
 93                     c.v[i+j]%=10000;
 94                 }
 95             if(c.v[c.v.size()-1]==0)c.v.pop_back();
 96             return c;
 97         }
 98
 99
100 };
101 ostream& operator<< (ostream &out,const bigint &x){
102     out<<x.v.back();
103     dxh(i,x.v.size()-2,0){
104         char s[10];
105         sprintf(s,"%04d",x.v[i]);
106         xh(j,0,strlen(s)-1)cout<<s[j];
107     }
108     return out;
109 }
110 istream& operator >>(istream &in,bigint &x){
111     string s;
112     if(!(in>>s))return in;
113     x=s;
114 }
115 bigint a,b,c;
116 int main(){
117     cin>>a;
118     cin>>b;
119     c=a*b;
120     cout<<c<<endl;
121     return 0;
122 }

时间: 2024-10-21 11:12:49

高精度模板(修改中)的相关文章

Xcode模板修改

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute

Xcode-项目模板修改

项目模板就是创建工程的时候选择的某一个条目, Xcode会根据选择的条目生成固定格式的项目 例如想创建一个命令行项目就选择Command Line Tool 如何修改项目模板 1.应用程序中,找到Xcode, 右键"显示包内容" 2.打开"/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Mac/Application" 文件夹 在/Applica

phpcms-v9 前台模板文件中{pc}标签的执行流程

前台pc标签的使用:{pc:content 参数名="参数值" 参数名="参数值" 参数名="参数值"} 如: {pc:content action="lists" catid="9" cache="3600" num="20" page="$page"}{/pc} 执行流程如下:     ①模块名:content     ②模块类文件:modul

可待学院 WordPress主题(模板)修改教程(九):创建单独的侧边栏

昨儿磊子把首页模板创建方法说了下,想必大家看了之后知道如何创建模板了吧,我们只需要在在创建的模板文件中加上模板名称,就可以当模板来使用了.我们在修改主题是,如果个别页面想自己放些样式或者js效果上去,但是又不想其他页面也有,我们就可以用创建模板的方法来搞定它.侧边栏也是一样,如果你只想在某一个页面放一个侧边栏上去,我们也可以为这个页面创建一个侧边栏出来,这样你就可以比较灵活的去使用了.还有一个方法那就是使用插件,这个插件叫widget logic,安装激活之后会在每个小工具里面出现widget

[Template]高精度模板

重新写一下高精度模板(不要问我为什么) 自认为代码风格比较漂亮(雾 如果有更好的写法欢迎赐教 封装结构体big B是压位用的进制,W是每位长度 size表示长度,d[]就是保存的数字,倒着保存,从1开始 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; const i

vi常用命令与设置(不断修改中)

注:前缀':'表示vim命令(命令模式),前缀'$'表示为shell命令,表示Ctrl + W,表示Ctrl + Shift+ 6,无前缀者均为普通模式下的键盘按键.基本的插入与修改:        a       光标下一个字符处插入:        i       在当前光标处插入:        A       行尾插入:        o       在光标下新建一行插入:        r       键入替换一个字符:        R       键入替换所有字符:        

Django 模板.html中 href参数传入

在Django模板中可能会出现访问多个URL指向同一函数,为减少代码可以利用正则表达式实现 url(r'^remove_userinfo(?P<nid>\d+)/',views.removeuserinfo,name='reinfo'), (?P<nid>\d+)表示此部分的名称为nid,对应removeuserinfo(request,nid)中的nid参数 def removeuserinfo(request,nid): return HttpResponse(nid) 此时

模板文件中的插件嵌入点列表

模板文件中的插件钩子(插件嵌入点): 插件钩子代码例子: <!--{hook/xxx_xxx}--> 插件钩子的作用在于能让插件在指定的一些位置输出有关代码!在DZ7.x-DX1.5中插件钩子并不显得很重要,但是随着插件应用的不断普及,插件创作者的不断加入,插件钩子在模板中的地位尤其显得格外重要,如果缺少了程序必须的插件钩子,可能会造成自带系统插件功能受到影响!所以我们在制作模板的时候一定要参考默认模板中的插件钩子位置进行合理的安排!除非你觉得某个插件钩子在自己的模板中并不需要,否则请保留插件

模板编程中的几点问题

类模板中头文件和源文件分离的编译问题 1.在泛型编程时, 声明和实现要放置在一起 (因为某些编译器不支持分离) 2.非泛型编程 声明和实现分开 可以为模板指定默认类型 template<typename T=int> class Stack{ } Stack<> stack;//Stack<int> stack; //stack is a stack for int 模板中放置非类型参数 template<typename T, int capacity>

ecshop如何直接在dwt,lbi模板文件中执行php代码

272版本之前的可以直接写php代码的,272,273版本的都不行, 网上搜了一下,关于这方面的也不多,而且问题是写的解决方法也不是很准确, 下面是我的解决方法,我的echsop是272版本的 找到文件includes/cls_template.php,在287行(我的是在287行) $source = preg_replace("/<\?[^><]+\?>/i", "", $source);代码注释掉就ok了 不过为了安全考虑,还是不建议直