今天算是假期集訓的第一天,第一次一整天只學資訊,刺激啊~~~雖然很累,但是還是要整理一下嘛。
高精度
之前學過高精度加法,所以不多說,直接出**:
#include#includeusing
namespace
std;
intmain()
for(int i=0;i)
m=0;
for(int i=0;i1;i++)
l=max(l1,l2);
for(int i=l;i>=0;i--)
if(c[i]==0)l--;
else
break
;
for(int i=l;i>=0;i--)
if(k==1
) cout
<<"0"
;
return0;
}
今天新學了乙個高精乘法,總體思路是一樣的,無非分為3個模組,分別是:讀入數字,進行運算,輸出得數。
第一點,讀入數字。和加法一樣,讀入乙個字串,再一一倒著轉換為整形陣列。(倒著存一是為了對齊末尾,二是為了方便)
第二點,進行運算。核心**段:
for(int i = 1;i <= l1;i++)
c[i + l1] = x;
}
這個是整個**的核心,主要難點是進製,進製解決了,整個程式就沒什麼難度了。(不要忘了 c[i + l1] = x; 進行最後一位的進製)
最後輸出得數,除了刪除前導零,沒什麼難度。
**如下:
#include#include#include
using
namespace
std;
char a1[100],b1[100
];int a[100] = ,b[100] = ,c[205] = ;
intmain()
for(int i = 0;i < l2; i++)
for(int i = 1;i <= l1;i++)
c[i + l1] =x;
} l = l1 +l2;
for(int i = l;i > 1; i--)
for(int i = l;i >= 1;i--)
return0;
}
高精度減法,高精度乘法
高精度減法 oj資料偏弱如果新增乙個101 2就錯了,下面這一步是為了防止錯誤的 if a aa 0 可能出現第一位的1被借走的的情況,所以加乙個while找第乙個不是0的 while c i 0 i include include include include include include u...
高精度乘法
問題描述 給你兩個正整數a,b,計算它們的乘積。輸入格式 第一行乙個正整數a 第二行乙個正整數b 輸出格式 一行,表示a b 樣例輸入 111222333444555666777888999 999888777666555444333222111 樣例輸出 提示 a,b分別不超過100000位 ff...
高精度乘法
include include include includeusing namespace std const int maxn 5000 inline int get struct data data operator const data b for int i 1 i c.len i whi...