Cho hai số dương N và M. Nhiệm vụ: tìm số thứ M mà tổng chữ số lặp lại (cho đến khi còn 1 chữ số) bằng N.
Mô tả: Tìm số thứ M có tổng chữ số lặp lại bằng N.
Ví dụ:
Đầu vào: N = 4, M = 6
Đầu ra: 49
Phương pháp giải
Cách đơn giản: duyệt các số, đếm số có tổng chữ số = N, trả về số thứ M.
Cách tối ưu: dùng công thức: Số thứ M = (M-1)*9 + N
Chương trình minh họa
Ví dụ
#include <bits/stdc++.h>
using namespace std;
int main() {
int n = 4, m = 6;
int mNumber = (m - 1) * 9 + n;
cout << m << "-th number whose repeated sum of digits of a number is " << n << " is " << mNumber;
return 0;
}
Kết quả
6-th number whose repeated sum of digits of a number is 4 is 49