Yêu cầu: Thực hiện hàm sumDigit(x, k) với k là số lần lặp lại của x
Ví dụ: sumDigit(2, 4) = sumDigit(2222) = sumDigit(2+2+2+2) = sumDigit(8) = 8
Giải thích: số x = 2 được lặp lại k = 4 lần là 2222 sau đó áp dụng hàm sumDigit(2222).
Mình đã làm như thế này, nhưng vẫn sai 1 số trường hợp, các bác giúp mình với
int tongCacChuSo(int n) {
static int sum = 0;
while (n != 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
int sumDigitt(string n, int k) {
int i = stoi(n);
if (k != 0) {
int sum = i * k;
if (sum >= 10) { //Sum >= 10, we get the sum of each element of this sum
if (sum % 9 == 0)
return 9;
else {
return sum % 9;
}
}
else {
return sum;
}
}
else {//Khi k == 0, se co 2 truong hop (9,0) => return 9, hoac (23, 0)
int digit = tongCacChuSo(i);
if (digit <= 9)
return digit;
else if (digit % 9 == 0)
return 9;
else
return digit % 9;
}
}



83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?