- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRecursiveDigitSum.java
More file actions
Latest commit
96 lines (78 loc) · 2.56 KB
/
Copy pathRecursiveDigitSum.java
File metadata and controls
96 lines (78 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*
Super Digit Problem
Super Digit of a number (int) is defined using the following rules:
Given an integer, we need to find its super digit.
If the number has only one digit, then its super digit is the number itself.
Otherwise, the super digit is the super digit of the sum of the digits of the number.
Example:
For the number 9875:
The sum of the digits of 9875 is 9 + 8 + 7 + 5 = 29.
The sum of the digits of 29 is 2 + 9 = 11.
The sum of the digits of 11 is 1 + 1 = 2.
Since 2 has only one digit, it is the super digit.
Additional Case with Repetition:
Given a number n and an integer k, we create a new number by concatenating n k times. We then calculate the super digit of this large number.
*/
importjava.io.*;
importjava.math.*;
importjava.security.*;
importjava.text.*;
importjava.util.*;
importjava.util.concurrent.*;
importjava.util.function.*;
importjava.util.regex.*;
importjava.util.stream.*;
importstaticjava.util.stream.Collectors.joining;
importstaticjava.util.stream.Collectors.toList;
classResult
{
/*
* Complete the 'superDigit' function below.
*
* The function is expected to return an INTEGER.
* The function accepts following parameters:
* 1. STRING n
* 2. INTEGER k
*/
publicstaticintsuperDigit(Stringn, intk)
{
// Write your code here
longnSum = 0;
for(charnDigits : n.toCharArray())
{
nSum += Character.getNumericValue(nDigits);
}
nSum *= k;
returnfindnSuperDigit(nSum);
}
publicstaticintfindnSuperDigit(longm)
{
longmSum = 0;
if(m < 10)
{
return (int) m;
}
while(m > 0)
{
mSum += m % 10;
m /= 10;
}
returnfindnSuperDigit(mSum);
}
}
publicclassRecursiveDigitSum
{
publicstaticvoidmain(String[] args) throwsIOException
{
BufferedReaderbufferedReader = newBufferedReader(newInputStreamReader(System.in));
BufferedWriterbufferedWriter = newBufferedWriter(newFileWriter(System.getenv("OUTPUT_PATH")));
String[] firstMultipleInput = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");
Stringn = firstMultipleInput[0];
intk = Integer.parseInt(firstMultipleInput[1]);
intresult = Result.superDigit(n, k);
bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();
bufferedReader.close();
bufferedWriter.close();
}
}