洛谷p1601
高精度加法
#include
//用字串類處理長數
#include
using
namespace std;
string add
(string str1,string str2)
else
len1=str1.
length()
;int cf=
0,temp;
for(
int i=len1-
1;i>=
0;i--)if
(cf!=
0) str=
char
(cf+
'0')
+str;
//進製不為零
return str;
}int
main()
//缺陷是不能進行負數相加
這是直接對字串進行的處理,還可用陣列。
#include
#include
using
namespace std;
#define maxn 1050
string a,b;
int na[maxn]
,nb[maxn]
,ans[maxn]
;int
main()
else ans[i]
=na[i]
+nb[i];}
if(na[max1+1]
!=0) cout<;for
(int i=max1;i>
0;i--
) cout<;return0;
}
還有乙個從大佬那學來的超級方法,可以處理負數
高精度減法
#include
#define maxn 10500
using
namespace std;
string a, b;
string _add
(string a, string b)
//高精度相加 (為底下a或b為負數相減做鋪墊)這個都會吧。
, nb[maxn]
=, ans[maxn +1]
=;for(
int i = a.
size()
; i >
0; i --
)na[i]
= a[a.
size()
- i]
-'0'
;for
(int i = b.
size()
; i >
0; i --
)nb[i]
= b[b.
size()
- i]
-'0'
;int maxl =
max(a.
size()
, b.
size()
);for(
int i =
1; i <= maxl; i ++
)//相加
if(ans[maxl +1]
!=0)sum +
="1"
;//特判 防止最大位進製
for(
int i = maxl;i >
0; i --
)sum +
= ans[i]
+'0'
;return sum;
}string _minus
(string a, string b)
, nb[maxn]
=, ans[maxn]=;
string diff;if(
(a < b && a.
size()
<= b.
size()
)|| b.
size()
> a.
size()
)return
"-"+
_minus
(b, a)
;for
(int i = a.
size()
; i >
0; i --
)na[i]
= a[a.
size()
- i]
-'0'
;for
(int i = b.
size()
; i >
0; i --
)nb[i]
= b[b.
size()
- i]
-'0'
;int maxl =
max(a.
size()
, b.
size()
);for(
int i =
1; i <= maxl; i ++
) ans[i]
= na[i]
- nb[i];}
while
(ans[maxl]==0
)maxl --
;//防止減後降位,多輸出若干0
if(maxl <1)
return
"0";
for(
int i = maxl; i >
0; i --
)diff +
= ans[i]
+'0'
;//陣列轉化為字串。
return diff;
}int
main()
else
if(a[0]
=='-'
)//只有a為負數
else
if(b[0]
=='-'
)//只有b為負數
else cout <<
_minus
(a, b)
;return0;
}
高精度乘法
#include
#include
using
namespace std;
#define maxn 10050
int na[maxn]
,nb[maxn]
,c[maxn]
;int
main()
int len=a.
size()
+b.size()
;for
(int i=
1;i(c[i]
>9)
while
(c[len]==0
&&len>
1) len--
;for
(int i=len;i>
0;i--
) cout<;return0;
}
高精度除法暫時還不會。。
洛谷對角線
#include
#include
using namespace std;
intmain()
素數
素數模板
bool is_prime
(int n)
埃尼斯託尼斯篩法
int prime[maxn]
;void
prime
(int maxn)
}
演算法 高精度乘法2(高精度乘高精度)
題目描述 高精度乘,求兩個很大的非負整數相乘的結果。輸入 2個非負整數,每個一行,每個整數不超過240位。輸出 乙個整數,表示相乘的結果。例子 為了和演算法對應方便,用上面數乘下面數的方法12 5 2512 5502 5312 5為了運算方便,將上面兩數倒置,得到的結果也為倒序下標0 1234 56...
高精度演算法 791 高精度加法
給定兩個正整數,計算它們的和。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的和。資料範圍 1 整數長度 100000 輸入樣例 1223 輸出樣例 35注意點 1.兩個整數較大,用字串來存,這樣的話,可以呼叫它的size 方法 2.將兩個大的整數,存入vector陣列中,最好把整數...
高精度演算法
任務 高精度,計算大數乘小數 引數 乘法函式mul引數為 被乘數a,儲存最終結果的ans陣列,乘數b 結果 ans陣列中ans 0 為最高位,以此類推 include include using namespace std void mul char a,char ans,int b 任務 高精度,...