11let baseNumber = null ;
22let squareNumber = null ;
3+ let cubeNumber = null ;
34let input ;
45let inputValue = "" ;
56let result ;
@@ -116,6 +117,14 @@ for (item of buttons) {
116117 input . innerHTML = squareNumber + " ^ 2" ;
117118 break ;
118119
120+ case "x³" :
121+ cubeNumber = eval ( inputValue ) ;
122+ inputValue = "" ;
123+ input . innerHTML = "" ;
124+ result . innerHTML = "" ;
125+ input . innerHTML = cubeNumber + " ^ 3" ;
126+ break ;
127+
119128 case "²√" :
120129 squareRoot ( ) ;
121130 break ;
@@ -125,7 +134,6 @@ for (item of buttons) {
125134 inputValue = "" ;
126135 input . innerHTML = rootIndex + "√" ;
127136 break ;
128-
129137 case "ln" :
130138 naturalLog ( ) ;
131139 break ;
@@ -138,10 +146,6 @@ for (item of buttons) {
138146 powerOfTen ( ) ;
139147 break ;
140148
141- case "e" :
142- e ( ) ;
143- break ;
144-
145149 case "x!" :
146150 factorial ( ) ;
147151 break ;
@@ -170,6 +174,17 @@ function ans() {
170174 result . innerHTML = power ;
171175 inputValue = power ;
172176 squareNumber = null ;
177+ } else if ( rootIndex ) {
178+ let radicand = parseFloat ( inputValue ) ;
179+ let resultValue = Math . pow ( radicand , 1 / rootIndex ) ;
180+ result . innerHTML = resultValue ;
181+ inputValue = resultValue ;
182+ rootIndex = null ;
183+ } else if ( cubeNumber ) {
184+ let power = cubeNumber ** "3" ;
185+ result . innerHTML = power ;
186+ inputValue = power ;
187+ cubeNumber = null ;
173188 } else {
174189 if ( inputValue !== "" ) {
175190 if ( inputValue . includes ( "%" ) ) {
@@ -205,6 +220,11 @@ function equal() {
205220 result . innerHTML = resultValue ;
206221 inputValue = resultValue ;
207222 rootIndex = null ;
223+ } else if ( cubeNumber ) {
224+ let power = cubeNumber ** "3" ;
225+ result . innerHTML = power ;
226+ inputValue = power ;
227+ cubeNumber = null ;
208228 } else {
209229 if ( inputValue !== "" ) {
210230 if ( inputValue . includes ( "%" ) ) {
@@ -327,11 +347,6 @@ function inverseTan() {
327347
328348// Other Functions
329349
330- function e ( ) {
331- input . innerHTML = Math . E ;
332- inputValue = result . innerHTML ;
333- }
334-
335350function squareRoot ( ) {
336351 const value = parseFloat ( inputValue ) ;
337352 if ( ! isNaN ( value ) ) {
@@ -371,7 +386,7 @@ function log() {
371386 const value = parseFloat ( inputValue ) ;
372387 let logResult ;
373388 if ( isNaN ( value ) || value <= 0 ) {
374- logResult = "Invalid input" ;
389+ logResult = "Invalid input" ;
375390 } else {
376391 logResult = Math . log ( value ) / Math . log ( 10 ) ;
377392 }
0 commit comments