Skip to content

Commit 16ed8ea

Browse files
new commit
1 parent 37f4d62 commit 16ed8ea

File tree

2 files changed

+90
-50
lines changed

2 files changed

+90
-50
lines changed

12_givenNumberSpellOut.js

Lines changed: 78 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,87 @@
1-
const sayNumberInEnglish = (n) => {
2-
const SINGLE_ARRAY = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
3-
const TEEN_ARRAY = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]
4-
const DOUBLE_ARRAY = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]
5-
6-
//For Single Digit
7-
if(n.toString().length === 1){
8-
return SINGLE_ARRAY[n]
9-
}
10-
11-
//For Double Digits
12-
if(n.toString().length === 2){
13-
if(parseInt(n.toString().charAt(n.length - 2)) === 1){
14-
return TEEN_ARRAY[(n%10)]
15-
}
16-
17-
if(n % 10 === 0){
18-
return DOUBLE_ARRAY[(n/10) - 2]
19-
}
20-
21-
const partOne = DOUBLE_ARRAY[Math.floor((n/10)) - 2]
22-
const partTwo = SINGLE_ARRAY[n%10]
23-
24-
return partOne + "-" + partTwo
25-
}
1+
var NUMBER2TEXT = {
2+
ones: [
3+
"",
4+
"one",
5+
"two",
6+
"three",
7+
"four",
8+
"five",
9+
"six",
10+
"seven",
11+
"eight",
12+
"nine",
13+
"ten",
14+
"eleven",
15+
"twelve",
16+
"thirteen",
17+
"fourteen",
18+
"fifteen",
19+
"sixteen",
20+
"seventeen",
21+
"eighteen",
22+
"nineteen",
23+
],
24+
tens: [
25+
"",
26+
"",
27+
"twenty",
28+
"thirty",
29+
"fourty",
30+
"fifty",
31+
"sixty",
32+
"seventy",
33+
"eighty",
34+
"ninety",
35+
],
36+
sep: [
37+
"",
38+
" thousand ",
39+
" million ",
40+
" billion ",
41+
" trillion ",
42+
" quadrillion ",
43+
" quintillion ",
44+
" sextillion ",
45+
],
46+
};
2647

27-
if(n%100 === 0 && parseInt(n.toString().charAt(0)) !== 0){
28-
return SINGLE_ARRAY[(n/100)] + " hundred"
29-
}
48+
const { ones, tens, sep } = NUMBER2TEXT;
3049

31-
const remainingNumber =n - parseInt(${parseInt(n.toString().charAt(0))}00)
50+
const sayNumberInEnglish = (number) => {
51+
let arr = [],
52+
str = "",
53+
i = 0;
54+
if (number.length === 0) {
55+
return;
56+
}
3257

33-
if(remainingNumber.toString().length === 1){
34-
return SINGLE_ARRAY[Math.floor((n/100))] + " hundred " + SINGLE_ARRAY[remainingNumber]
35-
}
58+
number = parseInt(number, 10);
59+
if (isNaN(number)) {
60+
return;
61+
}
3662

37-
if(parseInt(remainingNumber.toString().charAt(remainingNumber.length - 2)) === 1){
38-
return SINGLE_ARRAY[Math.floor((n/100))] + " hundred " + TEEN_ARRAY[(remainingNumber%10)]
39-
}
63+
while (number) {
64+
arr.push(number % 1000);
65+
number = parseInt(number / 1000, 10);
66+
}
4067

41-
if(remainingNumber % 10 === 0){
42-
return SINGLE_ARRAY[Math.floor((n/100))] + " hundred " + DOUBLE_ARRAY[(remainingNumber/10) - 2]
43-
}
68+
while (arr.length) {
69+
str =
70+
(function (a) {
71+
var x = Math.floor(a / 100),
72+
y = Math.floor(a / 10) % 10,
73+
z = a % 10;
4474

45-
const partOne = DOUBLE_ARRAY[Math.floor((remainingNumber/10)) - 2]
46-
const partTwo = SINGLE_ARRAY[remainingNumber%10]
75+
return (
76+
(x > 0 ? ones[x] + " hundred " : "") +
77+
(y >= 2 ? tens[y] + "-" + ones[z] : ones[10 * y + z])
78+
);
79+
})(arr.shift()) +
80+
sep[i++] +
81+
str;
82+
}
4783

48-
return SINGLE_ARRAY[Math.floor((n/100))] + " hundred " + partOne + "-" + partTwo
84+
return str;
4985
};
5086

51-
52-
53-
console.log(`5635 in english is: ${sayNumberInEnglish(5635)}`)
87+
console.log(`5635 in english is: ${sayNumberInEnglish(5635)}`);

18_calGrainsOnASquareOnChessboard.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
const totalGrains = () => {
2-
// Code here
2+
// Code here
33

4-
5-
return
4+
var ans = BigInt(2 ** 64);
5+
return ans - 1n;
6+
};
67

7-
}
8+
const grainsOn = (input) => {
9+
// Code here
810

9-
console.log(`Grains on 5th square: ${grainsOn(5)}`)
10-
console.log(`Total grains on the Chess Board: ${totalGrains()}`)
11+
var ans = BigInt(2 ** (input - 1));
12+
return ans;
13+
};
14+
15+
console.log(`Grains on 5th square: ${grainsOn(62)}`);
16+
console.log(`Total grains on the Chess Board: ${totalGrains()}`);

0 commit comments

Comments
 (0)