今日头条2017客户端工程师实习生笔试题
2016-09-27 23:13
357 查看
你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 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能容纳多少首歌(注意一张CD的歌数不能被13整除,留意倒数第二张CD的歌数);2、计算出总共需要多少张CD。
C代码如下:
此题博主觉得有些麻烦,求各位大神看看。
输入描述:
每组测试用例仅包含一组数据,每组数据第一行为三个正整数 n, s, L。 保证 n ≤ 100 , s ≤ L ≤ 10000
输出描述:
输出一个整数代表你至少需要的 CD 数量。
输入例子:
7 2 6
输出例子:
4
思路分析:1、算出一张CD能容纳多少首歌(注意一张CD的歌数不能被13整除,留意倒数第二张CD的歌数);2、计算出总共需要多少张CD。
C代码如下:
#include<stdio.h> int countOfCD(int n,int s,int L); int main(void) { int n,s,L,count; ; while(!(3 == scanf("%d %d %d",&n,&s,&L) && n <= 100 && s <= L && L <= 10000)) continue; count = countOfCD(n,s,L); printf("%d\n",count); return 0; } //一张CD能放count首歌,一共需要res张CD; int countOfCD(int n,int s,int L) { int i,count = 0,res; for(i = 0;i < n;i++) { if(i == 0 && s <= L) { count++; } else if(i > 0 && (s + (1 + s) * i) <= L) { count++; } else { if(0 == count % 13) { count--; } if(13 == n % count) { res = n / count + 2; } else if(n % count) { res = n / count + 1; } else { res = n / count; } break; } } return res; }
此题博主觉得有些麻烦,求各位大神看看。
相关文章推荐
- 【牛客网】今日头条2017客户端工程师实习生笔试题
- 今日头条2017客户端工程师实习生笔试题(回文解码)
- [今日头条] 2017客户端工程师实习生笔试题
- 算法面试题-今日头条2017客户端工程师实习生笔试题4:或与加
- 今日头条2017后端工程师实习生笔试题——最大映射
- 今日头条2017后端工程师实习生笔试题
- 木棒拼图(multiset 的应用)----今日头条2017后端工程师实习生笔试题
- 今日头条2017后端工程师实习生笔试题
- 今日头条2017后端工程师实习生笔试题
- 今日头条2017暑期实习生招聘笔试编程题之函数最宽尖峰
- 2017今日头条前端实习生笔试题
- 今日头条2017后端工程师笔试题
- 今日头条2017实习生笔试题解
- 网易有道客户端开发工程师实习生笔试题
- 2017实习生今日头条前端面经
- 【今日头条2017内推笔试题】二维平面整数点集
- 今日头条研发算法岗实习生笔试题解答篇_0324晚
- 2017-今日头条笔试题
- 今日头条2017计算机实习生c++第一道题
- 最大映射(今日头条2017笔试)