有一个养鸡园 里面有n个养鸡场 每个养鸡场每天增加k只鸡 每天结束时鸡数最多的养鸡场的鸡减半 求m天后 这个养鸡园所有的鸡的数目
输入:
第一行:m n k
第二行:给每个鸡场输入初始化的值
输出: 鸡总数
示例
输入:
3 3 100
100 200 400
输出:925
import java.util.Scanner;
import org.junit.Test;
public class Solution {
@Test
public void name() {
/*
* 有一个养鸡园
* 里面有n个养鸡场
* 每个养鸡场每天增加k只鸡
* 每天结束时鸡数最多的养鸡场的鸡减半
* 求m天后 这个养鸡园所有的鸡的数目
* 输入:
* 第一行:m n k
* 第二行:给每个鸡场输入初始化的值
* 输出: 鸡总数
* 示例
* 输入:
* 3 3 100
* 100 200 400
* 输出:925
* */
Scanner scanner = new Scanner(System.in);
int m=scanner.nextInt();
int n= scanner.nextInt();
int k = scanner.nextInt();
int[] arr = new int[n];
for(int i = 0;i<n;i++){
arr[i]=scanner.nextInt();
}
day(m,n,k,arr);
}
public void day(int m ,int n,int k,int[] arr ){
if (m==0) {
int max = 0;
for (int i : arr) {
max+=i;
}
System.out.println(max);
return ;
}
int max=0;
for (int i=0 ;i<n;i++) {
arr[i]+=k;
if (arr[max]<arr[i]) {
max=i;
}
}
arr[max]/=2;
m--;
day(m, n, k, arr);
}
}