java练习题:一个同学去买苹果,水果店只有6个一袋装和8个一袋装,设同学想买n个苹果,他是否可以刚好买到,若买的,输出苹果袋数,买不到,输出-1

本文探讨了一个关于苹果购买的问题,通过算法分析了如何利用仅有的6个和8个苹果的包装,来满足任意数量(1<n<100)苹果的购买需求。文章详细解释了算法的实现过程,包括条件判断和循环计算,最终输出购买方案或无法购买的结果。
一个同学去买苹果,水果店只有6个一袋装和8个一袋装,设同学想买n个苹果,他是否可以刚好买到,若买的,输出苹果袋数,买不到,输出-1
import java.util.Scanner;
public class Apple {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        if(n<6){            //如果要买的苹果小于6是买不到的
            System.out.println(-1);
        }else {
        for(int i=0;i<17;i++){      //因为题目规定1<n<100,所以买6个的对多16袋
            if(6*i<n){
                if((n-6*i)%8==0){
                    int j=(n-6*i)/8;
                    int sum=i+j;
                    System.out.println(sum);
                    break;
                }


                else {
                    continue;
                }
            }else if(6*i==n){
                System.out.println(i);
                break;
            }
            else{
                System.out.println(-1);
                break;
              }

           }
        }

    }
}

 

Java中,我们可以使用for循环来解决这个问题。首先,我们需要确定每种水果的量,然后用总金额除以单个水果的价格来计算能购的最大量。最后,我们可能需要调整剩余的钱来适应实际购情况。这里是一个简单的示例: ```java public class Main { public static void main(String[] args) { int totalMoney = 100; // 总金额 int appleCost = 5; // 苹果价格 int bananaCost = 3; // 香蕉价格 int lycheeCost = 1 / 3; // 李子价格,因为题目说是元三个,所以单价为1/3 // 初始化每种水果的计器 int apples = 0; int bananas = 0; int lychees = 0; // 循环直到没有足够的钱购任意种水果 for (int i = 0; i < 100; i++) { // 最多尝试购100次 if (totalMoney >= appleCost) { apples++; totalMoney -= appleCost; } else if (totalMoney >= bananaCost) { bananas++; totalMoney -= bananaCost; } else if (totalMoney >= lycheeCost * 3) { // 因为李子是3个1元,所以需要考虑成组购 lychees += totalMoney / (lycheeCost * 3); totalMoney %= (lycheeCost * 3); // 更新剩余钱 } // 如果已经购100个水果,就跳出循环 if (apples + bananas + lychees == 100) { break; } } System.out.println("苹果:" + apples); System.out.println("香蕉:" + bananas); System.out.println("李子:" + lychees); // 提供些额外的信息,如总花费剩余金额 double totalSpent = (double)(appleCost * apples + bananaCost * bananas + lycheeCost * lychees * 3); System.out.println("总共花费:" + totalSpent); System.out.println("剩余金额:" + totalMoney); } } ``` 注意这个解决方案假每种水果都可以买到个,如果有零钱无法购完整个,则会直接跳过。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值