最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++使用string的大數(shù)減法運算(2)

 更新時間:2019年09月18日 10:46:16   作者:好想告訴你wt  
這篇文章主要為大家詳細介紹了C++使用string的大數(shù)減法運算,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本次項目目標:使用C++完成對于大數(shù)的減法運算,供大家參考,具體內容如下

項目要點

1.大數(shù)指的是遠超long long int的數(shù)據(jù)

2.將大數(shù)用矩陣進行存儲,并通過矩陣實現(xiàn)運算

3.本人采用字符串進行存儲,應注意char的特點

比如:

char a=161;

cout<<(int)a;

此時會輸出-95,而不是161,char類型首個比特位是作為正負號的

減法,此處只做自然數(shù)加法,因為存在負整數(shù)的話可以使用自然數(shù)加法來處理,只需判斷正負再看加減即可

運行截圖及代碼如下

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
#define n 10
string dezero(string a)//用來去掉正數(shù)前面的0,也就是說可以輸入000001類似這樣的數(shù)字
{
 long int i;
 for(i=0;i<a.length();i++)
 {
 if(a.at(i)>48) break;
 }
 if(i==a.length()) return "0";
 a.erase(0,i);
 return a;
}
int judge(string a,string b)//判斷兩個正數(shù)的大小
{
 if(a.length()>b.length()) return 1;
 if(a.length()<b.length()) return -1;
 long int i;
 for(i=0;i<a.length();i++)
 {
 if(a.at(i)>b.at(i)) return 1;
 if(a.at(i)<b.at(i)) return -1;
 }
 return 0;
}
string minus(string a,string b)//自然數(shù)減法
{
 a=dezero(a);
 b=dezero(b);
 long int i,j=0;
 string c="0";
 string c1,c2;
 string d="-";
 if(judge(a,b)==0) return c;
 if(judge(a,b)==1)
 {
 c1=a;
 c2=b;
 }
 if(judge(a,b)==-1)
 {
 c1=b;
 c2=a;
 j=-1;
 }
 reverse(c1.begin(),c1.end());
 reverse(c2.begin(),c2.end());
 for(i=0;i<c2.length();i++)
 {
 if(c2.at(i)>=48&&c2.at(i)<=57) c2.at(i)-=48;
 if(c2.at(i)>=97&&c2.at(i)<=122) c2.at(i)-=87;
 }
 for(i=0;i<c1.length();i++)
 {
 if(c1.at(i)>=48&&c1.at(i)<=57) c1.at(i)-=48;
 if(c1.at(i)>=97&&c1.at(i)<=122) c1.at(i)-=87;
 }
 for(i=0;i<c2.length();i++)
 {
 c1.at(i)=c1.at(i)-c2.at(i);
 }
 for(i=0;i<c1.length()-1;i++)
 {
 if(c1.at(i)<0)
 {
  c1.at(i)+=n;
  c1.at(i+1)--;
 }
 }
 for(i=c1.length()-1;i>=0;i--)
 {
 if(c1.at(i)>0) break;
 }
 c1.erase(i+1,c1.length());
 for(i=0;i<c1.length();i++)
 {
 if(c1.at(i)>=10) c1.at(i)+=87;
 if(c1.at(i)<10) c1.at(i)+=48;
 }
 reverse(c1.begin(),c1.end());
 if(j==-1) c1.insert(0,d);
 return c1;
}
int main()
{
 string a,b;
 while(cout<<"input:"&&cin>>a>>b)
 {
 cout<<"output:"<<minus(a,b)<<endl;
 }
 return 0;
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C語言中隱藏結構體的細節(jié)

    C語言中隱藏結構體的細節(jié)

    以筆者粗淺的認識,有兩種最常用的方法,可以實現(xiàn)庫內結構體定義的隱藏:接口函數(shù)形參使用結構體指針,接口函數(shù)形參使用句柄。
    2017-05-05
  • C程序結構的入門

    C程序結構的入門

    在我們學習 C 語言的基本構建塊之前,讓我們先來看看一個最小的 C 程序結構,在接下來的章節(jié)中可以以此作為參考
    2021-06-06
  • MFC擴展DLL中導出類和對話框的實現(xiàn)方法

    MFC擴展DLL中導出類和對話框的實現(xiàn)方法

    這篇文章主要介紹了MFC擴展DLL中導出類和對話框的實現(xiàn)方法,詳細講述了實現(xiàn)擴展DLL中導出類和對話框的具體步驟與方法,具有不錯的實用價值,需要的朋友可以參考下
    2014-10-10
  • 關于vector的常見用法詳解

    關于vector的常見用法詳解

    這篇文章主要介紹了關于vector的常見用法詳解,vector本身可以作為數(shù)組使用,而且在一些元素個數(shù)不確定的場合可以很好地節(jié)省空間,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • C++錯誤使用迭代器超出引用范圍問題及解決方案

    C++錯誤使用迭代器超出引用范圍問題及解決方案

    這篇文章主要介紹了C++錯誤使用迭代器超出引用范圍分析與解決,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • C++調用matlab引擎實現(xiàn)三維圖的繪制

    C++調用matlab引擎實現(xiàn)三維圖的繪制

    這篇文章主要為大家詳細介紹了C++如何調用matlab引擎實現(xiàn)三維圖的繪制,文中的示例代碼講解詳細,對我們學習C++和Matlab有一定的幫助,需要的可以參考一下
    2022-12-12
  • 使用C/C++語言生成一個隨機迷宮游戲

    使用C/C++語言生成一個隨機迷宮游戲

    迷宮相信大家都走過,主要是考驗你的邏輯思維。今天小編使用C語言生成一個隨機迷宮游戲,具體實現(xiàn)代碼,大家通過本文學習吧
    2016-12-12
  • C++實現(xiàn)LeetCode(70.爬樓梯問題)

    C++實現(xiàn)LeetCode(70.爬樓梯問題)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(70.爬樓梯問題),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • c++ 基于opencv 識別、定位二維碼

    c++ 基于opencv 識別、定位二維碼

    這篇文章主要介紹了c++ 基于opencv 識別、定位二維碼,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下
    2021-03-03
  • Qt實現(xiàn)部件透明陰影效果與不規(guī)則窗體詳解

    Qt實現(xiàn)部件透明陰影效果與不規(guī)則窗體詳解

    這篇文章主要為大家詳細介紹了Qt實現(xiàn)部件透明陰影效果與不規(guī)則窗體的相關方法,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-01-01

最新評論

河池市| 马山县| 全州县| 五原县| 江北区| 商洛市| 静宁县| 买车| 宜兴市| 康平县| 承德市| 河间市| 大港区| 敦化市| 濮阳县| 南皮县| 胶州市| 克什克腾旗| 兰溪市| 永寿县| 廉江市| 北宁市| 平武县| 肇州县| 大荔县| 丹巴县| 明水县| 泊头市| 冷水江市| 集贤县| 楚雄市| 公主岭市| 定安县| 介休市| 岗巴县| 图们市| 洛阳市| 宝兴县| 湾仔区| 南陵县| 中江县|