首页 > 编程语言 >C++U7-1-高精度加减

C++U7-1-高精度加减

时间:2024-04-21 14:33:05浏览次数:13  
标签:cout 高精度 int s2 U7 加减 C++ s1 size

学习目标

 

 

 

 高精度加法

 

 

 

 

 

 

 

 

[高精度加法]

 

#include<bits/stdc++.h>
using namespace std;
int main(){
    string a;
    string b;
    int c[10089]={0};
    int d[10089]={0};
    int e[10089]={0}; 
    cin>>a>>b;
    int l1 = a.size() , l2 = b.size();
    for(int i=0;i<l1;i++){
        c[i]=a[l1-i-1]-'0';
    }
    for(int i=0;i<l2;i++){
        d[i]=b[l2-i-1]-'0';
    }
    int l=max(l1,l2),jw=0; 
    for(int i=0;i<l;i++){
        e[i]=c[i]+d[i]+jw;
        if(e[i]>9){
            e[i]-=10;
            jw=1;
    }else{
        jw=0;
        }
    }
    if(jw) cout<<1;
    for(int i=0;i<l;i++){
        cout<<e[l-i-1];
    }
    return 0;
} 
View Code

 

 

高精度减法

 

 

 

 

 

 

 

 

 

 

 

 

#include<bits/stdc++.h> 
using namespace std;

int main(){
    string s1,s2;
    cin >> s1 >> s2;
    if(s2.size() > s1.size() || s1.size() == s2.size() && s1 < s2) {
        swap(s1,s2);
        cout << "-";
    }
    int l1 = s1.size(),l2 = s2.size();
    int a1[10001] = {0},a2[10001] = {0},c[10001] = {0};
    for(int i = 0; i < l1 ; i++){
        a1[i] = s1[l1-i-1] - '0';
    }
    for(int i = 0; i < l2 ; i++){
        a2[i] = s2[l2-i-1] - '0';
    }
    for(int i = 0;i < l1 ;i++){ 
        c[i] = a1[i] - a2[i];
        if(c[i] < 0){
            c[i] += 10;
            a1[i + 1] -= 1;
        }
    }    
    while(c[l1] == 0 && l1 > 0) { //去零 
        l1-- ;
    }
    while(l1 >= 0){ //倒序输出 
        cout << c[l1--];
    }
    return 0;
}
View Code

 

 

 

标签:cout,高精度,int,s2,U7,加减,C++,s1,size
From: https://www.cnblogs.com/jayxuan/p/18148912

相关文章

  • 《Effective C++》读书笔记
    《EffectiveC++》读书笔记之前看过一遍,不过草草了事。近日看了《深度探索C++对象模型》,想起《EffectiveC++》中的内容已经有些忘记了,所以重新温习一下。这篇笔记只挑选书中的一些重要内容进行记录。条款07:为多态基类声明virtual析构函数这一个条款几乎是面试中的高频问题,只需......
  • 深度解读《深度探索C++对象模型》之数据成员的存取效率分析(二)
    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。接下来的几篇将会讲解非静态数据成员的存取分析,讲解静态数据成员的情况请见上一篇:《深度解读《深度探索C++对象模型》之数据成员的存取......
  • C++ STL -- HashTable
    HashTable一般常用的unordered_set、unordered_map都是基于哈希表实现的,哈希表主要需要注意的是哈希冲突,迭代器等基础哈希映射使用哈希函数将键映射到索引的数据结构。即将原始数组索引通过哈希函数映射到一个哈希值上,从而将一个大范围索引,减小到一个小的固定范围哈希冲突......
  • FreeLearning C/C++ 译文集翻译完成
    C++高级编程C++高级编程秘籍QtCreator应用开发C++游戏编程入门指南C++编程入门指南Boost.AsioC++网络编程BoostC++应用开发秘籍第二版C++数据结构与算法设计原理C++Qt5GUI编程C++高性能编程C++反应式编程C++系统编程秘籍C++研讨会C++现代嵌入式......
  • js,php,C++ 压缩算法不一致
    参考:https://yushuangqi.com/blog/2015/golang-php-gzencode-difrent.html压缩的数据:这是要压缩的数据aaaaaaaaaaaaaaaaaaa2222222222222222222222222222222顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶fffffffffffffffffffgggggggggggggggggggeeeeeeeeeeeeee对应的三种语言的最后数......
  • 深度解读《深度探索C++对象模型》之数据成员的存取效率分析(一)
    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。在《深度解读《深度探索C++对象模型》之C++对象的内存布局》这篇文章中已经详细分析过C++的对象在经过封装后,在各种情况下的内存布局以......
  • C++ STL -- list
    listlist是一种基于双向链表的数据结构,适用于需要在序列中执行频繁插入和删除操作的场景特性本质上是一个双向链表,允许在序列的两端和中间执行插入和删除操作只能通过迭代器访问元素,即访问元素的时间复杂度为\(O(n)\)动态内存管理,内部通过类似指针的节点实现元素存储,一个节......
  • C++ int main(int argc, char *argv[])的参数
    一般来说intmain有两种写法 第一种就是不带参数的intmain(){return-1;} 第二种就是带有参数的intmain(intargc,char*argv[]){return-1;}这里argc是参数的个数,实际调用函数时不用手动传入,其是根据*argv参数列表内的个数进行统计实际传入的参数都存入*a......
  • GDExtension的C++示例
    GDExtension的C++示例本文按照官方文档,进行c++的GDExtension​插件开发,主要进行文档进行复刻,同时对文档中未涉及步骤进行补充什么是GDExtension除了GDScript​和C#​这两种脚本语言外,Godot​引擎可以执行其他编程语言编写的代码。目前有两种方式实现:C++模块与GDExtension简单......
  • C++字符串常见混淆方案
    正文将字符串转换成等效int数组std::vector<uint32_t>convert_wstring_to_int_array(constwchar_t*str){std::vector<uint32_t>vec;for(size_ti=0;i<wcslen(str);i+=2){uint32_tval=(uint32_t)str[i]<<16&0xffff0000;i......