Giải pháp HackerRank siêu chữ số JavaScript
Bạn hoàn toàn đúng. -) Nó được gọi là "hàm đệ quy" và có thể RẤT hữu ích hoặc RẤT tệ tùy thuộc vào cách sử dụng Show Chìa khóa làm cho công việc này hoạt động là “điều kiện kết thúc”
Nếu bạn không gọi điều này, mã của bạn sẽ lặp đi lặp lại mãi mãi và tự gọi nó là QUÁ, QUÁ và QUÁ lần nữa… Một cái gì đó như thế này…
rất rất xấu xíHãy thử nó ở đây để xem ý tôi là gì. Lỗi. Quá nhiều đệ quy có nghĩa là chức năng này đã tự gọi chính nó 5000 lần theo đúng nghĩa đen và quyết định “vặn cái này đi, cái này sẽ tồn tại mãi mãi. Tôi nghỉ việc” Nếu bạn định gọi cùng một chức năng trong chính nó, hãy đảm bảo rằng bạn hoàn toàn có thể đảm bảo rằng có một điều kiện kết thúc hoặc bạn đang ở trong một thế giới bị tổn thương NHƯNG…. nếu bạn kết thúc nó…Vì vậy, nếu nó trừ đi một chữ số mỗi lần, bộ xử lý THỰC SỰ thấy nó như thế này… chữ số_tổng = (6 +( 7 + ( 9 + ( 0 + ( 1 )))))10976 % 10 = 6 + 1097 % 10 = 7 + 109 % 10 = 9 + 10 % 0 = 0 + 1 (Một chữ số nhỏ hơn 10 nên hàm ngừng gọi lại) Bằng 23 Giả sử, chúng ta được yêu cầu tạo một hàm nhận vào một số và tìm tổng các chữ số của nó một cách đệ quy cho đến khi tổng là một số có một chữ số Ví dụ - findSum(12345) = 1+2+3+4+5 = 15 = 1+5 = 6 Vì vậy, đầu ra phải là 6 Hãy viết mã cho hàm findSum() này − Thí dụ// using recursion const findSum = (num) => { if(num < 10){ return num; } const lastDigit = num % 10; const remainingNum = Math.floor(num / 10); return findSum(lastDigit + findSum(remainingNum)); } console.log(findSum(2568)); Chúng tôi kiểm tra xem số đó có nhỏ hơn 10 hay không, nó đã được rút gọn chưa và chúng tôi nên trả lại số đó và từ hàm nếu không, chúng tôi nên trả lại lệnh gọi cho hàm đệ quy lấy chữ số cuối cùng từ số thêm vào cho đến khi nó nhỏ hơn 10 Hackerrank – Báo cáo sự cốCó thể tìm thấy mô tả về sự cố trên Hackerrank Giải phápTạo một hàm đệ quy với điều kiện được mô tả - xem triển khai Tôi đã tạo ra giải pháp trong Tất cả các giải pháp cũng có sẵn trên GitHub của tôi Scala Giải pháp Scala 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 nhập scala. io. Nguồn
đối tượng SuperDigit mở rộng Ứng dụng { val dòng = Nguồn.stdin. bufferedReader(). readLine() val nk = dòng.tách(" ") val n = nk(0) val k = nk(1).toInt
println(superDigit(n, k))
def superDigit(num: Chuỗi, k. Int). Chuỗi = { nếu(num. độ dài == 1) { return num } else { val sum. BigInt = num. foldLeft(BigInt(0 . ))(_ + Character.chữ số(_, 10)) * k return superDigit(sum.toString, 1) } } } Làm cách nào để tìm siêu chữ số trong JavaScript?số var = 5678572322398989898991; . chiều dài > 1) { var temp = 0; . chiều dài; . nhật ký (tạm thời);
Số nguyên siêu chữ số là gì?Số siêu chữ số của số có một chữ số là chính chữ số đó nhưng đối với số có nhiều chữ số, siêu chữ số là tổng của tất cả các chữ số lặp đi lặp lại cho đến khi tổng đó là số có một chữ số. Vì vậy, nếu đầu vào giống như n = 513682, thì đầu ra sẽ là 7 vì (5+1+3+6+8+2) = 25, (2 + 5) = 7. |