前言
今日晴,阳光普照大地,感觉暖暖的,叶子有黄色的、红色的、橘色的、绿色的,有着秋天独有的色彩,伴随着清爽的秋风和暖暖的日光,我做了今天的第一道题目,现在我们一起来看一下。
代码
cpp
class Solution {
public:
int differenceOfSum(vector<int>& nums) {
int sum1 = 0;//元素和
int sum2 = 0;//数位和
for(int i=0;i<nums.size();i++){
if(nums[i]>=10){
sum1+=nums[i];
while(nums[i]){
sum2+=nums[i]%10;
nums[i]/=10;
}
// int tmp = 1;
// int num = nums[i];
// while(num>0){
// num/=10;
// tmp*=10;
// }
// while(tmp>0){
// sum2+=nums[i]/tmp;
// nums[i]%=tmp;
// tmp/=10;
// }
}
}
return abs(sum1-sum2);//这里把fabs改成abs更保险
}
};
反思
1.考察的知识点:顺序表vector
2.踩的坑:
1.我第一次做的时候企图构造一个函数,然后设法在这个differenceOfSum成员函数中调用这个函数,实现求数位和的功能,但我最终失败了,不知道为什么;
2.紧接着我第二次老老实实的做,把循环语句全部放到成员函数里面,也算是通过了。
3.可以优化的地方:
1.可以不用tmp这个中间量,直接一个while循环就可以,这样更简单;
2.返回绝对值时用的函数可以用abs,它相比fabs更加全能,fabs仅支持浮点数的绝对值,abs则支持浮点数和整数。