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.每张CD可以容纳i首歌
    *2.计算需要多少张CD
    **/
    #include <iostream>
     
    using namespace std;
     
    int main() {
        long long n, s, l;//n首歌,每首s秒,CD容量l秒
        long long i, z;//每张CD存i首歌,需要z张
        while(scanf("%lld%lld%lld", &n, &s, &l) != EOF) {
            for(i=1; i*s+i-1<=l; i++);//计算1张CD可以存i首歌
            i--;
            z=1;
     
            if(i % 13 == 0) {//每张CD不能存13的倍数首歌
                i--;
            }
     
            for(z=1; i*z<n; z++);//计算需要多少张CD
     
            if((n % 13 == 0) && (n <= i)) {//针对n是13的倍数且1张CD就可以存所有歌曲的情况
                z++;
            }
            if((i + n % i) >= (2 * i - 1)){//针对最后两张CD需要额外一张CD的情况
                z++;
            }
            if((n == 1) && (s == 1) && (l == 1)){//单独考虑1,1,1
                z=1;
            }
            cout << z << endl;;
        }
        return 0;
    }

    理解不了

    import java.util.*;
     
    public class Main{
         
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                int n = in.nextInt();
                int s = in.nextInt();
                int l = in.nextInt();
                int count = (l+1)/(s+1);// 一张cd 可以放歌的数量
                count = Math.min(n, count);
                if(count%13==0){
                    count--;
                }
                int sum = n/count;
                int yu = n%count;
                if(yu!=0){
                    sum++;
                    if(yu%13==0&&(count-yu)==1){//查看最后最后一张专辑的情况
                        sum++;
                    }
                }
                System.out.println(sum);
            }
        }
    }
  • 相关阅读:
    java操作docker示例(docker-java)
    istio实现对外暴露服务
    istio实现自动sidecar自动注入(k8s1.13.3+istio1.1.1)
    k8s1.13.3安装istio(helm方式)
    wrk http压测工具介绍
    etcd 相关介绍
    openresty 常用API学习
    Lua 相关知识点
    Lua 获取table的长度
    Lua 字符串相关操作
  • 原文地址:https://www.cnblogs.com/bbbblog/p/5725921.html
Copyright © 2011-2022 走看看