给定一个正整数n,求出它的各位数字平方和
时间: 2024-06-06 19:07:30 浏览: 184
求正整数各位数字之和
算法1:字符串转换
将n转换为字符串,逐位计算平方和。
时间复杂度:$O(\log n)$
C++ 代码
class Solution {
public:
int digitSquareSum(int n) {
int sum = 0;
string s = to_string(n);
for (char c : s) {
int d = c - '0';
sum += d * d;
}
return sum;
}
};
算法2:取模运算
不断取n的每一位数字,计算平方和,并将n除以10。
时间复杂度:$O(\log n)$
C++ 代码
class Solution {
public:
int digitSquareSum(int n) {
int sum = 0;
while (n) {
int d = n % 10;
sum += d * d;
n /= 10;
}
return sum;
}
};
阅读全文