黑马程序员技术交流社区
标题:
28人买可乐喝,3个瓶盖换一瓶可乐,要买多少瓶可乐 假如是50人,买多少瓶可乐?
[打印本页]
作者:
y6814365
时间:
2016-8-4 21:24
标题:
28人买可乐喝,3个瓶盖换一瓶可乐,要买多少瓶可乐 假如是50人,买多少瓶可乐?
package com.itheima;
import java.util.Scanner;
/*
* 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?
* 假如是50人,又需要买多少瓶可乐?(需写出分析思路)
* */
/*
一个人 1瓶 1- 1/3
二个人 2瓶 2-2/3
三个人 3瓶 3-3/3
四个人 3瓶 + 1瓶 3+1 4-4/3
五个人 4瓶 +1瓶 4+1 5-5/3
六个人 5瓶 + 1瓶 5+1 (6-6/3) +1
七个人 5瓶 + 2瓶 5+2 7-7/3
八个人 6瓶 + 2瓶 6+2 8-8/3
九个人7瓶 + 2瓶 6+3 9-9/3 +1
十个人7瓶 + 3瓶 7+3 7-10/3
.....
分析得出:购买的人数减去 瓶盖兑换的 就是需要购买的瓶数,但是当人数为3的整数倍时,需要先买,只有凑够3n个瓶盖才可以兑换
*/
public class Test9 {
public static void main(String[] args) {
/*
//定义一个键盘录入人数
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入人数:");
int nextInt = sc.nextInt();
System.out.println(nextInt + "个人,你只需要买: " + method(nextInt) + "瓶可乐");
}*/
// 调用 method方法 并打印
System.out.println("28人 ,你只需要买: " + method(28) + "瓶可乐");
System.out.println("50人 ,你只需要买: " + method(50) + "瓶可乐");
}
public static int method(int i) {
//当人数是3的整数倍时, 是先购买,而不是兑换.所以就需要+1
//比如 人数为6人时,你就需要购买5瓶可乐,而不是4瓶
if(i%3==0){
return (i - i/3) + 1;
}
return i - i / 3;
}
}
作者:
y6814365
时间:
2016-8-4 21:25
28人19瓶,50人 34瓶
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2