diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 0000000..9d0a9ce --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,30 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm install + - run: npm test diff --git a/lib/add.js b/lib/add.js index 1714b95..795b752 100644 --- a/lib/add.js +++ b/lib/add.js @@ -1,5 +1,33 @@ -function add() { +function add(num1, num2) { // 实现该函数 + let aNum1 = num1.split("").reverse(); + let aNum2 = num2.split("").reverse(); + let maxANum, minANum; + if (aNum1.length > aNum2.length) { + maxANum = aNum1; + minANum = aNum2; + } else { + maxANum = aNum2; + minANum = aNum1; + } + // 进位标识 + let minLen = minANum.length; + let flag = 0; + for (let i = 0; i < minLen; i++) { + let sum = +maxANum[i] + +minANum[i] + flag; + maxANum[i] = sum % 10; + flag = parseInt(sum / 10); + } + if (flag == 1) { + minLen++; + if (maxANum[minLen]) { + maxANum[minLen]++; + } else { + maxANum[minLen] = 1; + } + } + + return maxANum.reverse().join(""); } -module.exports = add \ No newline at end of file +module.exports = add;