Algorithm 带Ads的列表算法
我有一个Algorithm 带Ads的列表算法,algorithm,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(co
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;
int n=//某个整数
int y=//某个整数
int计数器=n;
int=y;
如果(计数器>adspacing-1){
对于(int i=0;i要显示的加法数:
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使用长变量代替int;“所有n
s和所有y
s”…包括n<0
或y==0
?对不起,所有非负的n
和y
,如果n是3,y是2,会发生什么?n/y=1.5。我无法呈现3+1.5=4.5行。我需要一个整数。你怎么会在示例中使用+1,但你还没有在(伪)中显示它代码?@Adam:不,n/y
在任何对整数类型使用整数除法的语言中都不是1.5,整数类型包括您的代码看起来像的整数类型。在其他语言中,您可以使用floor
或trunc
函数来丢弃小数部分。可以将其视为n+floor(n/y)
。顺便说一句,y>0
。我发现它很接近,但不正确。n+(n/(y-1))
听起来正确吗?这似乎对我的大多数测试都有效。我问这个问题的唯一原因是我不想因为我没有在问题中提供足够/正确的信息而不接受你的答案。@Adam:请给出一个具体的反例。