P1011 [NOIP1998 提高组] 车站 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)



import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int n = sc.nextInt();
int m = sc.nextInt();
int x = sc.nextInt();
int[] sum1 = new int[25];//装a的系数
int[] sum2 = new int[25];//装b的系数
if(n<=2){
System.out.println(a);
return;
}
if(n==3){
System.out.println(2*a);
return;
}
sum1[2] = 1;
sum1[3] = 2;
for(int i = 4;i<=n;i++){//遍历(必须从4开始,前面没有规律)
sum1[i] = sum1[i-1]+sum1[i-2]-1;//计算系数
sum2[i] = sum2[i-1]+sum2[i-2]+1;
}
int b = (m-a*sum1[n-1])/sum2[n-1];//公式
System.out.printf("%d",a*sum1[x]+b*sum2[x]);
}
}
