高精度乘法其實也就是大數乘法,和大數加法一樣由於超過了普通資料型別的範圍,所以需要使用陣列來儲存資料和計算,陣列計算過程中有以下幾個問題需要注意:
輸入資料時應該用字串的形式(保證每個元素都是一位數)
計算時應該將字串轉換為int型陣列方便計算
計算過程要注意按位相乘,錯位相加,比如123456計算過程是1236+123510+1234100的結果,這裡如果實在看不懂可以在紙上列豎式演算一下,能幫助理解,在**中利用乙個雙重for迴圈就能解決
注意處理進製
綜上所述,大數乘法的大概思路如下:
將兩個運算元以字元形式輸入
將運算元轉換成int型計算
利用迴圈進行計算和處理進製
輸出本程式中的操作並不難,如果事先了解過大數加法的人很容易理解,具體**如下:
#include #include int main()
; int i=0,j=0,k=0,max=0,m=0,n=0;
scanf("%s%s",a,b); //以字串形式將資料輸入
for(i=0;i<=strlen(a)-1;i++) //將char轉換成int以便計算
for(j=0;j<=strlen(b)-1;j++) //這裡沒有將兩個字串倒序
m=i;
n=j;
for(i=0;i0;i--) //由於上一步迴圈計算沒有對進製進行處理,所以有的陣列元素是兩位數
for(i=0;i}
常見的C語言面試程式設計題(三)
1,航天二院某所面試題,考查的是結構體和陣列的記憶體布局情況。include include typedef struct array1a typedef struct array2 b int main a s1 15 a s2 b s3 for int i 0 i 10 i s2 s1 3 s3...
C語言程式設計題,關於樹的層次遍歷
問題 輸出樹的層次遍歷的奇數層的所有結點。未必是二叉樹 輸入 從input.txt檔案讀入資料。每行的第乙個字母表示雙親結點,每行第乙個以後的字母表示該雙親結點的孩子結點。第一行的第乙個結點表示根結點。如輸入格式中第一行a b c,a為根結點並且為雙親結點,b c為其孩子結點。a b c間有空格。輸...
C語言程式設計需注意的方面 筆記
一 書寫風格 良好的程式設計風格是提高程式可靠性非常重要的手段,也是大型專案多人合作開發的技術基礎。具體的變成格式每家公司都有規範,但作為乙個初學者養成良好的程式設計風格還是有必要的。1 空行的使用 空行起著分隔程式段落的作用。空行得體 不過多也不過少 將使程式的布局更加清晰。空行不會浪費記憶體,所...