国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

43. Multiply Strings

2019-11-06 06:25:19
字體:
來源:轉載
供稿:網友

問題來自leetcode

問題描述

Given two non-negative integers num1 and num2 rePResented as strings, return the product of num1 and num2. Note: The length of both num1 and num2 is < 110. Both num1 and num2 contains only digits 0-9. Both num1 and num2 does not contain any leading zero. You must not use any built-in BigInteger library or convert the inputs to integer directly.

這道題其實挺簡單的,我的想法是對的,但是有冗余的部分,所以記錄一下。

以下是討論區別人分享的代碼

string sum(num1.size() + num2.size(), '0'); for (int i = num1.size() - 1; 0 <= i; --i) { int carry = 0; for (int j = num2.size() - 1; 0 <= j; --j) { int tmp = (sum[i + j + 1] - '0') + (num1[i] - '0') * (num2[j] - '0') + carry; sum[i + j + 1] = tmp % 10 + '0'; carry = tmp / 10; } sum[i] += carry; } size_t startpos = sum.find_first_not_of("0"); if (string::npos != startpos) { return sum.substr(startpos); } return "0";

主要思想: 我覺得這個跟加法器很像。Cin是后一位的進位,sum是本位,Cout是進位,out 為本次計算所得的結果。 sum = (out+Cin)%10; Cout = (out+Cin)/10; 遍歷即可得到結果。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浙江省| 衡东县| 贡觉县| 通山县| 新津县| 容城县| 志丹县| 舒城县| 宜良县| 尼勒克县| 申扎县| 嘉义市| 错那县| 浏阳市| 枝江市| 抚顺县| 革吉县| 普兰店市| 中阳县| 九寨沟县| 云和县| 阳新县| 年辖:市辖区| 天津市| 象山县| 方正县| 株洲县| 永兴县| 盐边县| 勃利县| 临猗县| 漳州市| 都安| 安仁县| 绥宁县| 深水埗区| 依兰县| 乌兰浩特市| 沽源县| 西乌珠穆沁旗| 清徐县|