首页 > 其他分享 >LeetCode 2544[交替数字和]

LeetCode 2544[交替数字和]

时间:2024-11-08 10:57:30浏览次数:4  
标签:numVec 10 数字 2544 int iRet 交替 isPos LeetCode

题目

链接

LeetCode 2544[交替数字和]

详情

实例

提示

题解

思路

依次求出各位数字,然后进行计算

循环找出各位数字:(循环体如下)

  将数字对10取余得到对应位数的数字,加入到容器 numVec

  数字除以10,得到新的数字,此数字是不包含已获取数字的位数

循环退出的条件:数字等于0

循环退出后 numVec 按照下标由小到大,存储着数字的位数由低到高

 

定义一个布偶型变量 isPos,作为其符号是否是正号的标志位:

  true 为正号,即加上此数值

  false为负号,即减去此数值

从容器最后一个元素往前遍历,即从高位往低位遍历,isPos 初始值为 true

每次遍历后 isPos 均取反

对各位数字求和最后返回

代码

class Solution {
public:
    int alternateDigitSum(int n) {
        
        vector<int> numVec;

        while (n)
        {
            numVec.push_back(n % 10);
            n /= 10;
        }

        bool isPos = true;
        int iRet = 0;
        
        for (int i = numVec.size() - 1; i >= 0; i--)
        {
            if (isPos)
                iRet += numVec.at(i);
            else
                iRet -= numVec.at(i);
            
            isPos = !isPos;
        }

        return iRet;
    }
};

标签:numVec,10,数字,2544,int,iRet,交替,isPos,LeetCode
From: https://www.cnblogs.com/EricsT/p/18534689

相关文章

  • LeetCode 2535[数组元素和与数字和的绝对差值]
    题目链接LeetCode2535[数组元素和与数字和的绝对差值]详情实例提示题解思路遍历容器,依次求出数字和与元素和,然后求差值:通过getSun函数,求取元素的数字和 getSun函数的实现:  将其对10取余操作,获取的余数即为当前位的数字  然后再除以10,继续对其进行10的取......
  • LeetCode HOT 100 记录
    目录230.二叉搜索树中第K小的元素-力扣(LeetCode)199.二叉树的右视图-力扣(LeetCode)230.二叉搜索树中第K小的元素-力扣(LeetCode)相当于把二叉搜索树从小到大排序,而二叉搜索树有一个特点,就是顺序左子树<根节点<右子树,因此可以考虑使用中序遍历/***Definitionfo......
  • 代码随想录算法训练营第九天|LeetCode151.翻转字符串里的单词、卡码网:55.右旋转字符串
    前言打卡代码随想录算法训练营第49期第九天︿( ̄︶ ̄)︿首先十分推荐学算法的同学可以先了解一下代码随想录,可以在B站卡哥B站账号、代码随想录官方网站代码随想录了解,卡哥清晰易懂的算法教学让我直接果断关注,也十分有缘和第49期的训练营大家庭一起进步。今日题目LeetCode151翻转字......
  • LeetCode 1137[第N个泰波那契数]
    题目链接LeetCode1137[第N个泰波那契数]详情实例实例1实例2提示题解思路一[递归]当n为0,1,2时,直接返回对应的值当n大于2时,开始用f(n+3)=f(n)+f(n+1)+f(n+2)来递归求值代码一[此代码在力扣会超出时间限制]classSolution{public:inttrib......
  • LeetCode LCR135[报数]
    题目链接LeetCodeLCR135[报数]详情实例题解思路通过pow函数对10进行幂运算,来获取报数范围然后循环遍历通过push_back方法将数字加入到容器内代码classSolution{public:vector<int>countNumbers(intcnt){vector<int>iRetVec;......
  • 【LeetCode】返回链表的中间结点、删除链表的倒数第 N 个结点
    主页:HABUO......
  • 两个线程交替写1~100
     packageTest;publicclassPrintNumber{privateintstatus=1,cnt=1;synchronizedvoidprint_odd(){while(cnt<100){while(status==2){try{this.wait();}......
  • LeetCode3270[求出数字答案]
    题目链接LeetCode3270[求出数字答案]详情实例实例1实例2实例3提示题解思路先依次取出num1,num2,num3的每位的位数  取最高位的时候,用数字除以1000,然后取10的余数  取第三位的时候,用数字除以100,然后取10的余数  取第二位的时候,用数字除以10,然后取10的余数......
  • LeetCode1672[最富有客户的资产总量]
    题目链接LeetCode1672[最富有客户的资产总量]详情实例实例1实例2实例3提示题解思路先定义一个最大值iMax设置为负值,保证资产为0时也可以被存储再一次遍历每个人的所有资产,求和iSum之后比较iSum和iMax的大小如果iSum大于iMax则将iSum的值赋给iMax......
  • LeetCode412[Fizz Buzz]
    题目链接LeetCode412[FizzBuzz]详情实例实例1实例2实例3提示题解思路定义一个容器sRetVec,依次遍历每一个数如果可以被3和5同时整除,则在容器内加入一个元素"FizzBuzz",即1==((0==(num%3))&&(0==(num%5)))成立,sRetVec.push_back("FizzBuzz")继续遍......