高精度 高精減法

2021-08-21 15:45:49 字數 1140 閱讀 2270

#include 

#include

char s1[10100];

char s2[10100];

int a[10100];

int b[10100];

int main()

else

int len;

if (l1 > l2)

len = l1;

else

len = l2;

// for (int i = 0 ; i <= len ; i++)

// a[i] = b[i] = 0;

for (int i = 0 ; i < len ; i++)

}while (a[len - 1] == 0 && len>1) len--;

if (flag == 1) printf("-");

for (int i = len - 1 ;i >= 0 ;i--)

printf("%d",a[i]);

printf("\n");

}return

0;}

分段解讀:

第一段:把字串轉換為整形陣列(為了方便運算,倒序寫入)

這裡的fiag用於標記是否結果負數.並保證a中的數大於等於b

scanf("%s%s",s1,s2);

int l1 = strlen(s1);

int l2 = strlen(s2);

int flag = 0;

memset(a,0,sizeof(a));

memset(b,0,sizeof(b));

if ( l1 < l2 || (strcmp(s1,s2) < 0 && l1 == l2) )

else

第二段:把a和b中逐項相減.如果小於0則借位;

for (int i = 0

; i < len ; i++)

}

第三段:while去首0

while (a[len - 1] == 0 && len>1) len

--;

最後輸出,如果有flag則輸出』-『

高精度 高精度冪

時間限制 1 sec 記憶體限制 64 mb 題目描述 經過測試,修羅王發現開啟魔法手銬的方法是需要求乙個正整數a 1輸入 包含兩個數字,即a和n。輸出輸出結果的最後1000位。複製樣例資料 2 10樣例輸出 1024注意c陣列不能只取1000為萬一第1000為為0不就捨掉了,到最後在輸出1000位...

高精度高階

計算 2 n 大整數因子 計算 n 階乘和任意給定乙個正整數 n n le 100 計算2的n次方的值。輸入乙個正整數 n 輸出 2 n 的值。include include include include include using namespace std int ans 1005 void ...

高精度減法

題目描述 高精度減法 輸入輸出格式 輸入格式 兩個數 第二個可能比第乙個大 輸出格式 結果 是負數要輸出負號 輸入輸出樣例 輸入樣例 1 2 1 輸出樣例 1 1說明 這也沒什麼好說的,沒什麼特別的要求,就是乙個普普通通的高精減。程式如下 const max 500 var s integer a,...