作者:小迅
链接:https://leetcode.cn/problems/alternating-digit-sum/solutions/2341276/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-7fjq/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题目
示例
思路
题意 -> 给定一个数字,将数字按位分解,按最高位取 +,之后 + - 交替计算,返回最后所得值
将数字转换为字符串,从头开始遍历,按照最高位取 + ,之后 + - 交替 计算每一位。
最后返回结果即可,其中对于 - 号的计算,可以转换为 + (- ),防止 - 号判断。
代码注释超级详细
代码
int alternateDigitSum(int n){char ans[30] = {0};sprintf(ans, "%d", n);//转换为字符串模拟int len = strlen(ans);int sum = 0;int flag = 1;//记录当前+,-for (int i = 0; i < len; ++i) {sum += ((ans[i] - '0')) * flag;//累加并对符号进行转换flag *= -1;//转换符号}return sum;
}作者:小迅
链接:https://leetcode.cn/problems/alternating-digit-sum/solutions/2341276/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-7fjq/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。