我有一个包含 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/