零、欸嘿!
英雄哥《算法零基础100讲》传送门
一、题目
力扣https://leetcode-cn.com/problems/sum-of-digits-of-string-after-convert/
二、解题
思路:就照着题目来,
转化:"zbax" ➝ "(26)(2)(1)(24)" ➝ "262124" ➝ 262124
转换 #1:262124 ➝ 2 + 6 + 2 + 1 + 2 + 4 ➝ 17
转换 #2:17 ➝ 1 + 7 ➝ 8
int getLucky(char * s, int k){
int ans=0;
int i=0;
while(s[i]){ //存在就继续
int tmp=s[i]-'a'+1; //用ascii码的值得出字母所代表的值
if(tmp/10){ //如果字母代表的值大于10,通过求余把它看成个位和十位俩数,加一起
tmp=tmp%10+tmp/10;
}
ans+=tmp; //这就是字母代表的数字每一位的和了
i++; //循环条件
}
k--; //因为上边已经求过一次和了所以,这里减一
int p;
while(k--){ //继续通过求余,将每一位的数加一起,循环k次
p=ans;
ans=0;
while(p){
ans+=p%10;
p/=10;
}
}
return ans; //返回结果
}
三、结果