數論 數字拆解 特殊乘法

2021-07-26 19:15:26 字數 782 閱讀 9665

數字拆解---特殊乘法

時間限制:1 秒

記憶體限制:32 兆

題目描述:

寫個演算法,對2個小於1000000000的輸入,求結果。

特殊乘法舉例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5

輸入:

兩個小於1000000000的數

輸出:

輸入可能有多組資料,對於每一組資料,輸出input中的兩個數按照題目要求的方法進行運算後得到的結果。

樣例輸入:

123 45

樣例輸出: 54

思路一:將輸入的兩個數字進行數字拆解後存放在兩個不同的陣列裡,用兩個變數cnt1和cnt2記錄拆解的位數,最後通過兩層for迴圈完成乘法操作。

ac**:

#includeusing namespace std;

char str1[15],str2[15];

int main()

while(b!=0)

int ans = 0;

for(int i=0;i思路二(處理字元的方法),結束標誌用str[i]=='\0'或str[i]==0都可以,因為'\0'對應的asc碼值就是0,此外字元型的數字要轉成成其對應的整型值時,直接減去字元'0'即可。

ac**:

#includeusing namespace std;

char str1[15],str2[15];

int main()

}

模板 數字拆解 (數值轉換 特殊乘法題解)

這是一類簡單的問題。1.對於不超過int的數,可以直接讀入整數,通過不斷求模再除以10的形式獲得每乙個數字,將它們存在陣列裡。2.對於超過int的數,考慮以字串形式讀入,然後依次處理每一位,將它們存在陣列裡面。需要注意的是,以字串讀入的時候,字串的高位儲存的是數的低位。求任意兩個不同進製非負整數的轉...

王道計算機機試 數字拆解 特殊乘法

寫個演算法,對 2 個小於 1000000000 的輸入,求結果。特殊乘法舉例 123 45 14 15 24 25 34 35 輸入 兩個小於 1000000000 的數 輸出 輸入可能有多組資料,對於每一組資料,輸出 input 中的兩個數按照題目 要求的方法進行運算後得到的結果。第一種方法 i...

ZCMU 1887 數論(數字拆解)

題目鏈結 題意 給乙個數字x要求將x拆分成a1 a2 a3 an,n個數字,數字個數隨意可以為1個。求某一拆分方法使得a1 a2 a3 an最大,輸出這個最大值。思路 除了1,2,3,4以外任何數字將其從乙個數字拆成兩個適當的數字再相乘都能使得結果變大,那麼乙個數字要想結果盡量大必定要使得拆分出來的...