zoukankan      html  css  js  c++  java
  • 高精度加法

     1 #include<bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 const int N = 1e5+5;
     6 
     7 char a[N],b[N];
     8 
     9 struct bign{
    10     int d[N];
    11     int len;
    12     bign(){
    13         memset(d,0,sizeof(d));
    14         len = 0;
    15     }
    16 };
    17 
    18 bign change(char *t){
    19     bign c;
    20     int len = strlen(t);
    21     c.len = len;
    22     for(int i=0; i<len; i++){
    23         c.d[i] = t[len - i - 1] - '0';
    24     }
    25     return c;
    26 }
    27 
    28 bign add(bign a, bign b){
    29     bign c;
    30     int carry = 0;
    31     for(int i=0; i<a.len || i<b.len; i++){
    32         int t = a.d[i] + b.d[i] + carry;
    33         c.d[c.len++] = t % 10;
    34         carry = t / 10; 
    35     }
    36     if(carry != 0) c.d[c.len++] = carry;
    37     return c;
    38 }
    39 
    40 void print(bign c){
    41     for(int i=c.len - 1; i>=0; i--){
    42         printf("%d",c.d[i]);
    43     }
    44 }
    45 
    46 int main(){
    47     scanf("%s%s",a,b);
    48     bign v1 = change(a);
    49     bign v2 = change(b);
    50     print(add(v1,v2));
    51     return 0;
    52 }
  • 相关阅读:
    斯特林公式
    高精度算法
    容斥原理
    贪心问题之——Dijkstra最短路
    博弈论
    JavaScript数据类型
    JavaScript变量
    认识JavaScript
    编程语言与计算机
    CSS验证工具
  • 原文地址:https://www.cnblogs.com/zhangqiling/p/12436945.html
Copyright © 2011-2022 走看看