LeetCode 2544[交替数字和]

打印 上一主题 下一主题

主题 882|帖子 882|积分 2646

标题

链接

LeetCode 2544[交替数字和]
详情


实例


提示


题解

思路

依次求出各位数字,然后进行计算
循环找出各位数字:(循环体如下)
  将数字对10取余得到对应位数的数字,加入到容器 numVec
  数字除以10,得到新的数字,此数字是不包含已获取数字的位数
循环退出的条件:数字即是0
循环退出后 numVec 按照下标由小到大,存储着数字的位数由低到高
 
定义一个布偶型变量 isPos,作为其符号是否是正号的标记位:
  true 为正号,即加上此数值
  false为负号,即减去此数值
从容器末了一个元素往前遍历,即从高位往低位遍历,isPos 初始值为 true
每次遍历后 isPos 均取反
对各位数字求和末了返回
代码
  1. class Solution {
  2. public:
  3.     int alternateDigitSum(int n) {
  4.         
  5.         vector<int> numVec;
  6.         while (n)
  7.         {
  8.             numVec.push_back(n % 10);
  9.             n /= 10;
  10.         }
  11.         bool isPos = true;
  12.         int iRet = 0;
  13.         
  14.         for (int i = numVec.size() - 1; i >= 0; i--)
  15.         {
  16.             if (isPos)
  17.                 iRet += numVec.at(i);
  18.             else
  19.                 iRet -= numVec.at(i);
  20.             
  21.             isPos = !isPos;
  22.         }
  23.         return iRet;
  24.     }
  25. };
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表