package cn.itcast.喝可乐问题;
public class cocaCola{
/**
* 10、28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
* 分析:可乐数量 人数 可乐数量 人数
*1 1 *2 2
*3 3
*3 4 *4 5
*5 6
*5 7 *6 8
*7 9
*7 10 *8 11
*9 12
*9 13 *10 14
*11 15
*11 16 *12 17
*13 18
*13 19 *14 20
*15 21
*15 22 *16 23
*17 24
*17 25 *18 26
*19 27
*19 28
当人数/3的余数是2的时候,需要的可乐数量是一个2为第一个元素公差为2的一个等差数列.需要买的可乐的数量就是一个第一个元素为2,公差为2的一个等差数列,所以得出结论:人数/3的余数为2,需要的可乐数量就是(人数/3 +1)*2
当人数/3的余数是0或者1的时候,需要的可乐数量是第一个元素为1,公差为2的一个等差数列,因此可以得出需要的可乐数量就是(人数/3 +1)*2-1;排除0人的情况
*/
public static void main(String[] args) {
int count = getCount(28);
System.out.println("28个人需要买" + count + "瓶可乐");
int total = getCount(50);
System.out.println("50个人需要买" + total + "瓶可乐");
}
private static int getCount(int i) {
int count = 0;
if (i == 0) {
return count;
} else if (i % 3 == 2) {
count = (i / 3 + 1) * 2;
} else {
count = (i / 3 + 1) * 2 - 1;
}
return count;
}
}
|
|