I’m getting TLE in all cases except 1 Please check if any correction.
import java.util.*;
public class Main {
public final static int mn =(int)Math.pow(10, 9)+7;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t=sc.nextInt();
while(t–>0) {
int n=sc.nextInt();
int m =sc.nextInt();
int count=tilesCount(n, m);
System.out.println(count);
}
sc.close();
}
public static int tilesCount(int n, int m) {
if(n>=1 && n<m) {
return n-1;
}
if(n==m) {
return 2;
}
int x=(tilesCount(n-1,m)%mn);
int y=(tilesCount(n-m, m)%mn);
return (x+y)%mn;
}
}