求最小天数和最大休假天数

题目描述
将一年规定为n天。小明能够工作5天然后摸鱼(休息)2天。你的任务是
确定小明每年可能的最小和最大休假天数。

输入格式
输入的第一行包含一个正整数n(1≤n≤1 000 000)--一年的天数。

输出格式
输出两个整数--每年可能的最小天数和最大天数。
输入样例1:
14

输出样例1:
4 4

我的大体解题思路是
最小天数就是先工作5天后放2天,
最大天数为先放2天后工作五天,
但不知道怎么进行代码实现,劳烦指导点播~


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int minDays = n / 7 * 2 + Math.max(n % 7 - 5, 0);
        int maxDays = (n + 4) / 7 * 2 + Math.min(n % 7, 2);
        System.out.println(minDays + " " + maxDays);
    }
}

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7660708
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:定义一个数组,并给出8个任意的初始数值,求改数组中大于平均值的数的个数,和小于平均值的个数
  • 除此之外, 这篇博客: 数据结构-十大经典排序算法之插入排序中的 数据结构-十大经典排序算法之插入排序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 算法思想
    • 算法步骤
    • 算法动态演示
    • 部分代码实现

    第一部分:算法思想

    插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
    第二部分:算法步骤

    从第一个元素开始,该元素认为已经被排序;

    取下一个元素,在已经排序的元素序列中从后向前扫描;

    如果已排序元素大于新元素,将已排序元素移到下一位置;

    重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;

    将新元素插入到该位置后;

    重复步骤2~5。
    第三部分:算法动态演示

    在这里插入图片描述
    第四部分:部分代码实现

    
    void sort_array(int *arr, int n)
    //  编程实现《插入排序算法》:将乱序序列arr转化为升序序列
    //  函数参数:乱序整数数组(无重复元素) 数组长度
    {
    	int temp ;
    	int j ;
        for(int i = 0 ;i<n;i++){
    		temp = arr[i] ;
    		j = i -1 ;
    		while(j>=0&&arr[j]>temp){
    			arr[j+1] = arr[j];
    			j--;
    		}
    		arr[j+1] = temp ;
    	}
    }
    
    
    • 看到这了,如果觉得有用的话就动动手指点个赞吧,下期带来“数据结构-十大经典排序算法之-希尔排序”。
  • 您还可以看一下 邱石老师的1小时开发商城类小程序课程中的 小程序商品数据的解析,商品价格的动态修改小节, 巩固相关知识点