包含广告的列表算法

标签 algorithm

我有一个包含 n 项的列表。我想在每个 y 项之后展示广告,从 y 项之后开始(不是从 0 开始)。有了这些信息,我如何确定列表的总长度(原始 n 项,加上广告 y)

解决方案必须适用于所有 n 和所有 y

这不是一个家庭作业问题或类似的问题。我正在构建一个应用程序,并在侧边栏中显示一个项目列表,并且我想在每 5 个项目(变量)之后显示一个广告。

这是我尝试过的:

int n = //some integer
int y = //some integer
int counter = n;
int adspacing = y;
if(counter > adspacing-1) {
 for(int i=0;i<n);i++) {
  if(i%adspacing == 0 && i != 0) {
    counter++;
  }
 }
}

return counter;

我在这上面花了几个小时,就在我认为我明白了的时候,我尝试了某个 n 和某个 y ,这导致我的应用程序崩溃(因为 counter 变得太大,导致我引用了超出范围的数组索引)。

最佳答案

要显示的添加数量:

n/y 

因此列表的总长度为

n+n/y 

示例 y= 3 n=3
xxxA:3 + 3/3 = 3 + 1 = 4

示例 y= 3 n=5
xxxAxx:5 + 5/3 = 5 + 1 = 6

关于包含广告的列表算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19499973/

相关文章:

algorithm - 设计一个算法从链表中随机选择一个元素

algorithm - 为什么快速排序比归并排序好?

java - Java 新手 : what are the bits between i and j in 10000000000

HTML 预取资源

c - 向后字母表的算法是什么?

algorithm - 使用 Welford 方法计算单程方差时删除先验样本

python - 确定 Python 列表是否 95% 相同?

algorithm - 数学效率的对数计算

algorithm - 在访问某些节点的图中找到最短路径

algorithm - 你如何验证两个彩色平面图是同构的?