高精度就是爆int還爆long long的型別。
1456 巨型軍團的測試
解題思路:
高精度只能用字串來進行儲存。因為字串本身沒有運算功能,為了方便運算,需要將字串轉換為整數陣列。需將數字對齊,將各位數字逆序存放,以第一位為個位,可以進行數字對齊。和豎式計算差不多,按照列豎式計算的過程,進行模擬運算各位求和並且進製,反向逐位輸出。最後數字對齊,從個位開始,所以要反向輸出。
最強題解:
#include//通用
using namespace std;
int a[2005],b[2005],c[2005];//陣列範圍
int na,nb,nc;//數字長度
char s[2005];
int main()
//讀入b
scanf("%s",s+1);
ns=strlen(s+1); nb=ns;
for(int i=1;i<=ns;i++)
//確定數字
nc=max(na,nb);
//進行加法
for(int i=1;i<=nc;i++)
//進製
for(int i=1;i<=nc;i++) }
//最高位不能為0
while(c[nc]==0&&nc>1) nc--;
for(int i=nc;i>=1;i--)
return 0;
}
1457 巨型軍團的測試2:合格
解題思路:
同第一題一樣。
treeoj題目範圍:
求a-b,保證啊a>b。
最強題解:
#include#includeint a[2005],b[2005],c[2005];
int na,nb,nc;
char s[2005];
int main()
scanf("%s",s+1);
nb=strlen(s+1);
for(int i=1;i<=nb;i++)
//差的數字
nc=na;
//做減法
for(int i=1;i<=nc;i++)
//進行借位
for(int i=1;i<=nc;i++) }
//第乙個數不能為0
while(c[nc]==0&&nc>1) nc--;
//反向輸出
for(int i=nc;i>=1;i--)
return 0;
}
1459 巨型軍團的測試3:加持
解題思路:
與上面一樣。
treeoj 題目範圍:
保證爆int型別,a是大整數型別的,b是整數型別的。
最強題解:
#include#includeint a[2005],c[2005];//儲存數字
int b;
int na,nc;//儲存數字長度
char s[2005];
int main()
scanf("%d",&b);
//確定乘積的數字
nc=na;
//乘法
for(int i=1;i<=nc;i++)
//處理進製
for(int i=1;i<=nc;i++) }
//反向輸出
for(int i=nc;i>=1;i--)
return 0;
}
高精度演算法 入門
高精度演算法是基礎演算法中比較實用的演算法之一,它主要應用於大數之間的運算。主要是在超過lo nglo ng範圍時應用,或者兩者進行運算後超過lo nglo ng的範圍的計算。高精度是利用字元來存一串 或者 利用乙個陣列來存乙個數字。其實像小學數學一樣列乙個豎式就能看懂了。結構體 struct no...
A B高精度入門
洛谷的題目 完全跟著大佬走的,這裡解釋一下這個過程。高精度顧名思義就是在數字位數很大的情況下對數字進行運算。由於這兩個數都很大,那麼我們就無法通過輸入乙個int型甚至乙個long long來儲存,那麼我們只能將這個數的每一位拿陣列儲存起來,兩個陣列按位相加,相加結果儲存在另乙個陣列裡,最後輸出結果。...
高精度除法(高精度除以高精度)
先貼乙個簡單的高精度除以單精度的 include include include using namespace std int main else ys ys 10 a i 0 while c i 0 i for int j i j 0 j printf d c j if ys printf d ...