c++加法高精度算法的簡(jiǎn)單實(shí)現(xiàn)
c++高精度算法,對(duì)于新手來(lái)說(shuō)還是一大挑戰(zhàn),只要克服它,你就開(kāi)啟了編程的新篇章,算法。
我發(fā)的這個(gè)代碼并不是很好,占用內(nèi)存很多而且運(yùn)行時(shí)間很長(zhǎng)(不超過(guò)1秒),但是很好理解,很適合新手
高精算法的本質(zhì)就是把數(shù)組編程字符串,然后將字符串像豎式一樣加起來(lái):
a+b高精度算法
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{
char a[100010],b[100010];
cin>>a>>b;//輸入兩個(gè)字符串。
int c[100010],d[100010],h[100010],n1,n2,i,jw=0;//設(shè)三個(gè)正整形數(shù)組,來(lái)存放兩個(gè)加數(shù),一個(gè)存放和。n1n2來(lái)存放字符串a(chǎn)、b的長(zhǎng)度。
n1=strlen(a);//將字符串a(chǎn)的長(zhǎng)度存到n1里面
n2=strlen(b);
for(i=0;i<n1/2;i++) swap(a[i],a[n1-1-i]);//調(diào)換加數(shù)字符串的順序,這樣可以使各位對(duì)齊,就像加法豎式一樣。
for(i=0;i<n2/2;i++) swap(b[i],b[n2-1-i]);//同上
for(i=0;i<n1;i++) c[i]=a[i]-'0';//把字符串c轉(zhuǎn)化到數(shù)組a中,其中-‘0'就是轉(zhuǎn)化方式
for(i=0;i<n2;i++) d[i]=b[i]-'0';
if(n1>n2) swap(n1,n2); //比較兩個(gè)數(shù)組長(zhǎng)度,選長(zhǎng)的做for循環(huán)的條件。
for(i=0;i<n2;i++) h[i]=c[i]+d[i];
for(i=0;i<n2;i++)
{
if(h[i]>=10)
{
jw=h[i]/10; //取進(jìn)位
h[i]=h[i]-10;//去掉進(jìn)位
h[i+1]++;
}
if(jw>0)
{
jw=0;//初始化進(jìn)位
}
}
if(h[n2]!=0) cout<<h[n2];//判斷最高位是否有進(jìn)位,有則輸出。
for(i=n2-1;i>=0;i--) cout<<h[i];
}
以上就是小編為大家?guī)?lái)的c++加法高精度算法的簡(jiǎn)單實(shí)現(xiàn)的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持腳本之家~
- 使用C++的string實(shí)現(xiàn)高精度加法運(yùn)算的實(shí)例代碼
- c++實(shí)現(xiàn)高精度加法
- C/C++高精度算法的實(shí)現(xiàn)
- C++高精度算法的使用場(chǎng)景詳解
- C/C++高精度運(yùn)算(大整數(shù)運(yùn)算)詳細(xì)講解
- C/C++高精度(加減乘除)算法的實(shí)現(xiàn)
- 詳解C/C++高精度算法的簡(jiǎn)單實(shí)現(xiàn)
- C++?高精度乘法運(yùn)算的實(shí)現(xiàn)
- 詳解C/C++高精度(加減乘除)算法中的壓位優(yōu)化
- C/C++高精度算法實(shí)現(xiàn)思路與代碼
相關(guān)文章
OpenCV計(jì)算輪廓長(zhǎng)度/周長(zhǎng)和面積
這篇文章主要為大家詳細(xì)介紹了OpenCV計(jì)算輪廓長(zhǎng)度/周長(zhǎng)和面積,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
C++數(shù)據(jù)結(jié)構(gòu)之紅黑樹(shù)的實(shí)現(xiàn)
紅黑樹(shù)在表意上就是一棵每個(gè)節(jié)點(diǎn)帶有顏色的二叉搜索樹(shù),并通過(guò)對(duì)節(jié)點(diǎn)顏色的控制,使該二叉搜索樹(shù)達(dá)到盡量平衡的狀態(tài)。本文主要為大家介紹了C++中紅黑樹(shù)的原理及實(shí)現(xiàn),需要的可以參考一下2022-08-08
C語(yǔ)言 fseek(f,0,SEEK_SET)函數(shù)案例詳解
這篇文章主要介紹了C語(yǔ)言 fseek(f,0,SEEK_SET)函數(shù)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
ubuntu系統(tǒng)vscodeC++編譯環(huán)境配置與使用方式
這篇文章主要介紹了ubuntu系統(tǒng)vscodeC++編譯環(huán)境配置與使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
C語(yǔ)言scandir函數(shù)獲取文件夾內(nèi)容的實(shí)現(xiàn)
scandir?函數(shù)用于列舉指定目錄下的文件列表,本文主要介紹了C語(yǔ)言scandir函數(shù)獲取文件夾內(nèi)容的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
用VC++6.0的控制臺(tái)實(shí)現(xiàn)2048小游戲的程序
本文是作者拜讀劉地同學(xué)的《C語(yǔ)言控制臺(tái)版2048》之后感覺(jué)非常不錯(cuò),添加了注釋之后分享給大家的,方便更多的初學(xué)者閱讀學(xué)習(xí),有需要的小伙伴參考下。2015-03-03
C++計(jì)算整數(shù)序列的最長(zhǎng)遞增子序列的長(zhǎng)度操作
這篇文章主要介紹了C++計(jì)算整數(shù)序列的最長(zhǎng)遞增子序列的長(zhǎng)度操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
C語(yǔ)言開(kāi)發(fā)簡(jiǎn)易版掃雷小游戲
本文給大家分享的是一個(gè)使用C語(yǔ)言開(kāi)發(fā)的命令行下的簡(jiǎn)易版掃雷小游戲,本身沒(méi)有什么太多的技術(shù)含量,只不過(guò)是筆者的處女作,所以還是推薦給大家,希望對(duì)大家學(xué)習(xí)C能夠有所幫助。2015-12-12

