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

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

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

本次項(xiàng)目目標(biāo):使用C++完成對(duì)于大數(shù)的減法運(yùn)算,供大家參考,具體內(nèi)容如下

項(xiàng)目要點(diǎn)

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

2.將大數(shù)用矩陣進(jìn)行存儲(chǔ),并通過(guò)矩陣實(shí)現(xiàn)運(yùn)算

3.本人采用字符串進(jìn)行存儲(chǔ),應(yīng)注意char的特點(diǎn)

比如:

char a=161;

cout<<(int)a;

此時(shí)會(huì)輸出-95,而不是161,char類(lèi)型首個(gè)比特位是作為正負(fù)號(hào)的

減法,此處只做自然數(shù)加法,因?yàn)榇嬖谪?fù)整數(shù)的話(huà)可以使用自然數(shù)加法來(lái)處理,只需判斷正負(fù)再看加減即可

運(yùn)行截圖及代碼如下

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
#define n 10
string dezero(string a)//用來(lái)去掉正數(shù)前面的0,也就是說(shuō)可以輸入000001類(lèi)似這樣的數(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)//判斷兩個(gè)正數(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;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語(yǔ)言中隱藏結(jié)構(gòu)體的細(xì)節(jié)

    C語(yǔ)言中隱藏結(jié)構(gòu)體的細(xì)節(jié)

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

    C程序結(jié)構(gòu)的入門(mén)

    在我們學(xué)習(xí) C 語(yǔ)言的基本構(gòu)建塊之前,讓我們先來(lái)看看一個(gè)最小的 C 程序結(jié)構(gòu),在接下來(lái)的章節(jié)中可以以此作為參考
    2021-06-06
  • MFC擴(kuò)展DLL中導(dǎo)出類(lèi)和對(duì)話(huà)框的實(shí)現(xiàn)方法

    MFC擴(kuò)展DLL中導(dǎo)出類(lèi)和對(duì)話(huà)框的實(shí)現(xiàn)方法

    這篇文章主要介紹了MFC擴(kuò)展DLL中導(dǎo)出類(lèi)和對(duì)話(huà)框的實(shí)現(xiàn)方法,詳細(xì)講述了實(shí)現(xiàn)擴(kuò)展DLL中導(dǎo)出類(lèi)和對(duì)話(huà)框的具體步驟與方法,具有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • 關(guān)于vector的常見(jiàn)用法詳解

    關(guān)于vector的常見(jiàn)用法詳解

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

    C++錯(cuò)誤使用迭代器超出引用范圍問(wèn)題及解決方案

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

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

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

    使用C/C++語(yǔ)言生成一個(gè)隨機(jī)迷宮游戲

    迷宮相信大家都走過(guò),主要是考驗(yàn)?zāi)愕倪壿嬎季S。今天小編使用C語(yǔ)言生成一個(gè)隨機(jī)迷宮游戲,具體實(shí)現(xiàn)代碼,大家通過(guò)本文學(xué)習(xí)吧
    2016-12-12
  • C++實(shí)現(xiàn)LeetCode(70.爬樓梯問(wèn)題)

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

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

    c++ 基于opencv 識(shí)別、定位二維碼

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

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

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

最新評(píng)論

龙山县| 新巴尔虎左旗| 密山市| 安图县| 凤山市| 天门市| 同仁县| 巴林左旗| 屯昌县| 诏安县| 改则县| 习水县| 景宁| 河南省| 宾川县| 贺兰县| 安龙县| 白河县| 紫阳县| 齐齐哈尔市| 平度市| 绵阳市| 卢氏县| 武威市| 靖宇县| 江源县| 汝州市| 凤台县| 紫云| 利辛县| 密山市| 浠水县| 沅陵县| 临泽县| 东平县| 新巴尔虎右旗| 二手房| 濮阳县| 东辽县| 庐江县| 大姚县|