思路就是將每位數字分別存入乙個整數陣列中,並記錄小數點的位置,迴圈相乘,按列相加因子,並進製去權,和我們草稿紙上算乘法差不多,迴圈n次
1 #include 2 #include 3using
namespace
std;45
intmain()
6; //
九九乘法表
19char buf[7
] ;20
21while ( scanf( "
%s%d
" , buf , &n ) == 2)22
//記錄小數點的位置p,跳過小數點
34 b[++i] = buf[j--] - '
0' ; //
倒序的方式將讀入的字串中的數字逐個存入陣列b,b[1]個位、b[2]十位,以此類推35}
36 bw =i ;
37while ( b[bw] == 0 ) bw-- ; //
得到的整數b有bw位(去掉前導的0)
3839
for ( h = 1 ; h <= n ; h++)
4048
}49 cw += bw ; //
位的增加
50 c[1] = 0;51
for ( i = 1 ; i < cw ; i++)
5258
if ( c[cw] == 0 ) cw-- ; //
去首位059}
6061
62 p *= n ; //
小數點的移動
63 g++;
6465
for ( i = 1 ; i <= cw ; i++ ) sss[g][i] =c[i] ;
66 www[g] = cw ; ppp[g] =p ;
6768}69
7071
for ( h = 1 ; h <= g ; h++)
7282 printf( "\n"
) ;83}84
85 }
大數相關poj1001
go.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include include include includeusing namespace std const long base 10000 class bigintege...
POJ 1001 解題報告
這道題主要是考察數的高精度乘法,使用陣列儲存資料,陣列中的元素對於高精度資料中的某一位。我用的思想很簡單,類似我們手算乘法時採用的步驟,這是在兩層的for 迴圈中實現的。需要注意乙個問題,如果採用unsigned char型儲存元素,在運算的過程中rslt元素的中間結果可能超過255,造成乘法結果的...
POJ 1001 解題報告
這是一道基礎的高精度的題目。對於高精度的題目,頭腦一定要清晰,一定要細心。這種題,錯的話還是比較難改的 除非用debug,好吧,我用了 基本思路就是把所有的數字反過來存放在字串陣列中,然後一位一位的模擬手算。要注意的是 1 字元 n 和數字n之間的轉換要搞清 2 每次更新是盡量把陣列清零,否則可能使...