算法题目:

小明去附近的水果店买橙子,水果商贩只提供整袋购买,有每袋3个和每袋5个的包装(包装不可拆分)。
可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。
请根据此实现一个程序,要求:
输入一个整数n,表示小明想要购买n(1≤n≤100)个橙子
输出一个整数表示最少需要购买的袋数,如果不能买恰好n个橙子则输出-1

思路:

(1)双层循环

import java.util.*;public class testOrange {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = Integer.parseInt(sc.nextLine());int a = n / 5 + 1;  // 买5个一袋的最多能买多少袋int b = n / 3 + 1;  // 买3个一袋的最多能买多少袋int temp = -1;  // 最少需要的袋数for (int i = 0; i < a; i++) {for (int j = 0; j < b; j++) {// 5个一袋的总数加上3个一袋的总数等于n 代表买j个3个一袋的和i个5个一袋的能刚好买到n个橘子if (3 * j + 5 * i == n) {temp = i + j;break;}}}if(temp == -1){System.out.println("当前输入数量无法求出最小袋数");}else{System.out.println("最小袋数为:" + temp);// 输出需要的最少袋数}}
}

(2)单层循环

import java.util.*;public class testOrange {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = Integer.parseInt(sc.nextLine());int temp = -1;  // 最少需要的袋数for (int i = 0; i < n / 5 + 1; i++) {  //外层循环求5个一袋需要多少袋if ((n - (i * 5)) % 3 == 0) {   //如果购买数量减去需要5个一袋的数量除3等0,此结果就是需要3个一袋的数量,不等于0则无法购买temp = (n - (i * 5)) / 3 + i; //总数为3个一袋的数量+5个一袋的数量}}if (temp == -1) {System.out.println("当前输入数量无法求出最小袋数");} else {System.out.println("最小袋数为:" + temp);// 输出需要的最少袋数}}
}

JAVA求解橘子算法相关推荐

  1. 贪婪算法在求解最短路径中的应用(JAVA)--Dijkstra算法

    最短路径问题最经典的算法就是Dijkstra算法,虽然不如Floyd算法能够求全源的最短路径,但是在效率上明显强于Floyd算法. 想了解Floyd算法的读者可以参考动态规划在求解全源最短路径中的应用 ...

  2. JAVA:实现线性丢番图方程求解器算法(附完整源码)

    JAVA:实现线性丢番图方程求解器算法 package com.thealgorithms.maths;import java.util.Objects;public final class Line ...

  3. 动态规划在求解全源最短路径中的应用(JAVA)--Floyd算法

    参考图论算法(二)-最短路径的Dijkstra [ 单源 ] 和Floyd[ 多源 ] 解法(JAVA ) 这种算法也叫Floyd-Warshell算法,虽然和Warshell算法名字相近,算法思想也 ...

  4. Java数据结构与算法(二)

    Java数据结构与算法(二) 第六章 递归 1 递归应用场景 2 递归的概念 3 递归调用机制 4 递归能解决什么样的问题 5 递归需要遵守的重要规则 6 递归-迷宫问题 6.1 迷宫问题 6.2 代 ...

  5. java数据结构-动态规划算法-一次性学会

    java数据结构-动态规划算法 算法介绍 最佳实践-背包问题 代码实践 寻找最长回文子串的求解 总结 算法介绍 动态规划算法的核心思想是:将大问题划分为小问题,一步步获取最优解 与分治算法类似,但也有 ...

  6. 【Java应用】使用Java实现机器学习算法:聚类、分类、预测

    一.引言 1.机器学习算法概述 机器学习是一种人工智能技术,旨在通过使用数据和统计分析来让计算机系统自动改进性能.机器学习算法可分为三大类:聚类.分类和预测.聚类算法用于将数据集分成不同的群组:分类算 ...

  7. java贪心,java实现贪心算法

    并证明了贪心算法解决此问题的有效性,且进行了实例验证,并进 行了复杂度分析,此算法是解决资源组合规划问题较好的方法. 关键词:贪心算法;java 程序;复杂度分析;...... 数据结构与算法 实验名 ...

  8. 链表之反转链表,万金油的解题方法(java求解)

    链表之反转链表,一招鲜吃遍天(java求解) 内容目录 链表之反转链表,一招鲜吃遍天(java求解) 解题万金油 栗子1:反转整个链表 栗子2:反转某个区间内的链表 栗子3:按照k为一组,反转某个区间 ...

  9. Java 数据结构与算法

    目录 Java 数据结构与算法 数据结构 数据结构的定义 数据的逻辑结构 数据的物理结构 数据存储结构 数据结构的分类 线性结构 非线性结构 常用的数据结构 数组(Array) 栈( Stack) 队 ...

最新文章

  1. python学习--服务期间通讯和mysql数据库操作
  2. AJAX相关JS代码片段和部分浏览器模型
  3. Windbg中使用查找内存并设置访问断点
  4. jsp button提交表单
  5. jzoj4282-[NOIP2015模拟10.29B组]平方数游戏【构造】
  6. aws python lambda_python – AWS Lambda发送HTTP请求
  7. RabbitMQ架构模型(一)
  8. AIX系统修改文件系统的方法
  9. java简历专业技能,附详细答案解析
  10. Canvas API
  11. Excel怎么快速为非数字单元格填充颜色
  12. html图片逆时针转换,css3怎样做出逆时针旋转倒计时
  13. 关于3.3V稳压芯片
  14. 基于地理位置的Android AR app项目简述
  15. 系统分析员、系统架构师、项目经理的区别
  16. Go使用gos7实现西门子PLC通讯
  17. oracle几何体数据类型,4.2 SDO_GEOMETRY类型、属性和值
  18. 一个合格的程序员所具备的素质和修养
  19. 数字化转型,你也可以品
  20. mysql数据库之存储过程

热门文章

  1. Smarty之常用变量调节器
  2. 如何在php中显示170cm,矮个子怎么拍出大长腿?学会这几个诀窍,秒变170cm +
  3. 操作系统学习笔记_03_进程的概念与操作
  4. 简述“哈佛结构”和“冯·诺依曼结构”的区别
  5. 老公与老婆-这才是爱(看完不许哭) (今天情人节一时感动,转载了过来)
  6. 荣耀v20云计算机,一张图看懂荣耀v20,小米9,iqoo谁值得买(云分析)
  7. 解决TrackPopupMenu显示菜单不全的问题
  8. python第二次作业
  9. 加密解密工具 之 普莱费尔密码
  10. php数组用逗号相连,php逗号连接数组