2544. 交替數(shù)字和
題目:
給你一個正整數(shù) n 。n 中的每一位數(shù)字都會按下述規(guī)則分配一個符號:
最高有效位 上的數(shù)字分配到 正 號。
剩余每位上數(shù)字的符號都與其相鄰數(shù)字相反。
返回所有數(shù)字及其對應(yīng)符號的和。
示例 1:
輸入:n = 521
輸出:4
解釋:(+5) + (-2) + (+1) = 4
示例 2:
輸入:n = 111
輸出:1
解釋:(+1) + (-1) + (+1) = 1
示例 3:
輸入:n = 886996
輸出:0
解釋:(+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0
提示:
1 <= n <= 109
來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/alternating-digit-sum
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
思路:
首先,我們將數(shù)字n轉(zhuǎn)換成字符串。
其次,我們對字符串中每一個位置進(jìn)行遍歷,并且在加入總和之前先乘一個符號位,這里的符號位初始為1,其次每次循環(huán)都令它乘一個-1即可。文章來源:http://www.zghlxwxcb.cn/news/detail-549290.html
最后,返回最終答案即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-549290.html
代碼:
class Solution {
public:
int alternateDigitSum(int n) {
string sup = to_string(n);
int sum = 0;
int flag = 1;
for(char c : sup)
{
int dig = c - '0';
int sign = flag * dig;
sum += sign;
flag *= -1;
}
return sum;
}
};
到了這里,關(guān)于入門力扣自學(xué)筆記272 C++ (題目編號:2544)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!