POJ 1001 解題報告

2021-06-18 05:04:27 字數 683 閱讀 4970

這是一道基礎的高精度的題目。對於高精度的題目,頭腦一定要清晰,一定要細心。這種題,錯的話還是比較難改的(除非用debug,好吧,我用了……)。

基本思路就是把所有的數字反過來存放在字串陣列中,然後一位一位的模擬手算。

要注意的是:

1、字元『n』和數字n之間的轉換要搞清;

2、每次更新是盡量把陣列清零,否則可能使上一次運算的結果影響這一次的運算。

另外,高精度的題還要儘量減少計算量,高精度的題目本來效率就是比較低的,很容易tle。

再貼下本人**,比較亂……

#include#includeint max(int a,int b)

void rev(char num,int n)

; int i;

for (i=0;i=d;--i)

sum+=temp[i]-'0';

if (sum==0)

return true;

return false;

}bool test2(char temp,int d)

void print(char temp,char ans,int d,int n)

int len=strlen(ans);

for (i=199;(ans[i]==0||ans[i]=='0')&&i>=p;--i);

for (j=0;ans[j]=='0'&&j

POJ 1001 解題報告

這道題主要是考察數的高精度乘法,使用陣列儲存資料,陣列中的元素對於高精度資料中的某一位。我用的思想很簡單,類似我們手算乘法時採用的步驟,這是在兩層的for 迴圈中實現的。需要注意乙個問題,如果採用unsigned char型儲存元素,在運算的過程中rslt元素的中間結果可能超過255,造成乘法結果的...

大數相關poj1001

go.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include include include includeusing namespace std const long base 10000 class bigintege...

POJ 1001 高精度乘法

必須去掉前導0和後導0,乙個特殊資料是對000.00這樣的輸出0 include includeusing namespace std int main while n 2 如果小於2直接輸出 for int i 0 i dianwei i 從左往右去掉0 int lastindex 1 for i...