原題鏈結
高精加法是比較熟悉的乙個高精了
但是現在要練習壓位
一開始覺得
簡單的合併就好
後來想起來還要
保證壓的這幾位是順序
但是整體是倒序
想了個比較麻煩的辦法
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
char a[600],b[600];
int la,lb,l,k,i,p1,p2,p3,cnt1,cnt2,pa[600],pb[600],ans[600],cnt,x;
int main()
}if(l==1) cnt1++,pa[cnt1]=a[0]-'0';
if(l==2) cnt1++,pa[cnt1]=(a[0]-'0')*10+a[1]-'0';
l=lb%3;
k=0;
for(i=lb-1;i>=l;i--)
}if(l==1) cnt2++,pb[cnt2]=b[0]-'0';
if(l==2) cnt2++,pb[cnt2]=(b[0]-'0')*10+b[1]-'0';
cnt=max(cnt1,cnt2);
for(i=1;i<=cnt;i++)
if(ans[cnt+1]!=0) cnt++;
printf("%d",ans[cnt]);
for(i=cnt-1;i>=1;i--)
printf("%03d",ans[i]);
return
0;}
下面是比較簡潔的壓位**
// num[0]用來儲存數字位數。利用10000進製可以節省空間和時間。
hp & hp::operator = (const
char* c)
num[0]=j;
return *this;
}
P1601高精度加法
傳送門 雖然本題一本通上有,但是一本通不是萬能的,這道題就漏掉了進製 所以這告訴我們加法進製很重要 直接上修改後的題解 include include include using namespace std char s 10001 k 10001 int a 10000001 b 100001 c...
高精度加法 洛谷P1601
題意 求a b的和 分析 由題目可知,a和b的範圍是小於等於1e500的,這種情況下,任何乙個型別都存不下這麼大的數,這時候就可以用高精度來做這題。對於一組數,我們可以先把數讀入然後從個位開始對於兩個位置上的數進行加法操作。別忘了進製 對於兩個數,我們在做加法運算的時候是進行右對齊的 如下圖 而讀入...
落谷 P1601 A B Problem(高精)
題目背景 無題目描述 高精度加法,x相當於a b problem,b color red 不用考慮負數 color b 輸入格式 分兩行輸入a,b 10 500 輸出格式 輸出只有一行,代表a b的值 輸入輸出樣例輸入1 1輸出2 includeusing namespace std int mai...