zoukankan      html  css  js  c++  java
  • 网易-出专辑

    题目:

    你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地收录于一张 CD 当中。每张 CD 的容量长度都是 L 秒,而且你至少得保证同一张 CD 内相邻两首歌中间至少要隔 1 秒。为了辟邪,你决定任意一张 CD 内的歌数不能被 13 这个数字整除,那么请问你出这张专辑至少需要多少张 CD ?

    输入描述: 
    每组测试用例仅包含一组数据,每组数据第一行为三个正整数 n, s, L。 保证 n ≤ 100 , s ≤ L ≤ 10000

    输出描述: 
    输出一个整数代表你至少需要的 CD 数量。

    输入例子: 
    7 2 6

    输出例子: 
    4

    分析:1. 先求出一张专辑能存储的最大数目的t,count*s+count-1<=L,即count=(L+1)/(s+1),如果count%13==0。则count--;

       2. 考虑余数n%t不等于0,也就是最后一张专辑的歌曲数会出现的情况。如果余数是13的倍数,可以考虑从倒数第二张专辑中借一首歌,但此时倒数第二张专辑的歌曲数如果能被13整除,这种情况只能再多出一张专辑。 

    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            while(in.hasNext()) {
                int n = in.nextInt();    // 总共n首歌曲
                int s = in.nextInt();    // 每首歌占用时间
                int l = in.nextInt();     // 每张CD的时间容量
            
                int count = (l + 1 ) / (s + 1);   // 每张CD存储的歌曲数
                if(count > n)
                    count = n;
                if(count % 13 == 0) {
                    count --;
                }
                int sum = n / count; // 需要的专辑数
                int yu = n % count;  // 最后一张专辑歌曲数
                if(yu != 0) {                                   // 最后一张专辑数不等于0,余数肯定小于count,
                    sum ++;                                        // 所以如果余数能被13整除,可以向倒数第二张专辑借一首,
                    if((count -1 == yu) && (yu % 13 == 0)) {    // 但是若借后导致倒数第二张专辑歌曲数是13的倍数,就不能借
                        sum ++;                                    // 此时只能 再多加一张专辑
                    }
                }
                System.out.println(sum);               
            }    
        }
    }
  • 相关阅读:
    7.微软AJAX的解决方案
    6.投票系统
    5.JSON
    4.无刷新评论
    3.输入商品名称后自动弹出其价格示例
    2.JQuery AJAX
    1.AJAX简介
    网站优化
    防抖和节流
    在地址栏输入一次地址会发生什么
  • 原文地址:https://www.cnblogs.com/zywu/p/5747458.html
Copyright © 2011-2022 走看看