1 Write a recursive method called descend that prints the n
1 ) Write a recursive method called descend that prints the numbers 1…n in descending order. Your main method will need to read n from the user, then call method descend with the number read.
2) Write a recursive method called exp to perform exponentiation return x, assuming n >= 0. Your main method will need to read x and n from a file, then call method exp with the input read. Print the result of x after each recursive call.
This is what i have so far. I just dont get part 2.
import java.util.Scanner;
public class Recursion {
public static void main(String[] args){
Scanner scn = new Scanner(System.in);
int n = 0;
System.out.println(\"Enter Number\");
n = scn.nextInt();
descend(n);
}
public static int descend(int n){
if(n==0){
return n;
}
else{
System.out.println(n);
descend(n-1);}
return n;
}
Solution
// include the required header file
import java.util.*;
import java.io.*;
public class Recursion {
public static void main(String[] args){
int x,n;
BufferedReader br = null;
try {
String sCurrentLine;
//read first line frm file
br = new BufferedReader(new FileReader(\"input.txt\"));
while ((sCurrentLine = br.readLine()) != null) {
//spilt the line read using \"^\" as tokenizer
String tokens[]=sCurrentLine.split(\" \");
//store first token as x(base)
x=Integer.parseInt(tokens[0]);
//store second token as n(power)
n=Integer.parseInt(tokens[1]);
//call exp function
System.out.println(x+\"^\"+n+\" : \"+exp(x,n));
}
} catch (IOException e) {
System.out.println(\"Unable to able file!!\");
}
}
//fiunction to calculate exp
public static int exp(int base, int power)
{
//return 1 if power is 0
if(power==0)
{
return 1;
}
//else multiply base with power
else
{
int result=base*exp(base, power-1);
System.out.println(result);
return result;
}
}
}

