换汽水问题

题目举例:1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以 喝到多少瓶汽水?

import java.io.*;
import java.lang.Double;
import java.math.BigDecimal;

public class countTest
{
 public static void main(String[] args) throws IOException
 {  
  
  BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 
  
  System.out.println("总钱数:") ;
  double money  =  Double.parseDouble(reader.readLine()); 
  
  System.out.println("单价:") ;
  double price  =  Double.parseDouble(reader.readLine()); 

  System.out.println("兑换一听需要的空瓶数:") ;
  int n  =  Integer.parseInt(reader.readLine()); 

  System.out.println("***********************") ;
 
  int i = countTest.count(money, price, n) ;  
 }

 public static int count(double money, double price, int n)
 {
  //i为进行的轮数 ;
  int iCount = 0 ;
  
  //喝到的总瓶数 ;
  int sum = 0 ;

  //空瓶数量 ;
  int iEmpty = 0 ;

        //money不够 ;
  if(money < price)
  {
   System.out.println("钱数不够,无法购买!") ;
   return sum ;
  }
  
  //money充足 ;
  else
  {
   double tmp ;
   
            //第一轮比较特殊,用钱买 ;
   if(iCount == 0)
   {
    
    iCount = iCount + 1 ;
    tmp = money/price ;
    Double d = new Double(tmp) ;
    sum = d.intValue() ;
    iEmpty = sum ; 
    
    System.out.println("第"+iCount+"次") ;
       System.out.println("已经喝到"+sum+"瓶") ;
    System.out.println("本次喝到"+sum+"瓶") ;
       System.out.println("空瓶还有"+iEmpty+"个") ;
    System.out.println("----------------") ;
   }  

            //从第二轮开始,用瓶子换 ;

   //空瓶足够换一瓶 ;
   while(iEmpty >= n)
   {
    //tmp1表示本次喝到的瓶数 ;
    int tmp1 ;
    iCount = iCount + 1 ;
    tmp1 = iEmpty/n ;
    sum = sum + tmp1 ;
    iEmpty = iEmpty/n + iEmpty%n ; 
    
    System.out.println("第"+iCount+"次") ;
       System.out.println("已经喝到"+sum+"瓶") ;
    System.out.println("本次喝到"+tmp1+"瓶") ;
       System.out.println("空瓶还有"+iEmpty+"个") ;
    System.out.println("----------------") ;
   } 
      int iExchange = iCount - 1 ;
   System.out.println("总共进行了1轮购买和"+iExchange+"轮兑换") ;
   System.out.println("总共喝到"+sum+"瓶") ;
   System.out.println("还剩余"+iEmpty+"个空瓶") ;    
   return sum ;
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值