Cho hai số dương N và X. Nhiệm vụ là tìm tổng các chữ số của một số được tạo bởi N lặp lại X số lần cho đến khi tổng trở thành một chữ số
ví dụ.
Input : N = 24, X = 3 Output : 9 Number formed after repeating 24 three time = 242424 Sum = 2 + 4 + 2 + 4 + 2 + 4 = 18 Sum is not the single digit, so finding the sum of digits of 18, 1 + 8 = 9 Input : N = 4, X = 4 Output : 7
Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp
Như đã thảo luận trong bài đăng này, tổng đệ quy của các chữ số là 9 nếu số đó là bội số của 9, nếu không thì n % 9. Vì phép chia hết và số học mô-đun tương thích với phép nhân, nên chúng ta chỉ cần tìm kết quả cho một lần xuất hiện, nhân kết quả với x và tìm lại kết quả.
Tính năng này hoạt động như thế nào? .
Lets N = 24 and X = 3.
Vì vậy, sumUntilSingle[N] = 2 + 4 = 6.
Nhân 6 với 3 = 18
sumUntilSingle[18] = 9.
Dưới đây là việc thực hiện phương pháp này.
C++
901
902
903
904
905
906
907
908
90
91
90
93
94
95
96
97
98
99
9010
95
99
9013
9014
9015
9016
903
90
9019
90
9021
90
9023
94
95
90
9027
95
99
9030
9014
9032
90
9034
94
95
90
9038
95
9040
95
99
9010
9014
Java
9045
902
903
9048
9049
95
95
908
95
9054
90
91
90
93
95
94
98
96
9063____1064
9065
9066
99
9064
9069
98
99
9072
9073
9074
9064______1076
9073
9078
9073
9080
95
9014
95
95
9015
95
9016
95
903
95
9054
90
9019
90
9021
90
9023
95
94
98
90
912
98
99
9030
95
9014
98
95
9032
95
922
9054
924
925
95
94
98
90
930
931
932
933
9069
98
936
95
9014
9014
940
Python3
941
942
943
944
945
946
95
96
949
950
950
9064
953
98
99
9064
95
99
959_______160
9073
950
950
9064
9065
966
9073
968
959
960
9073
9065