Algorithm 表达式来计算循环中的字段

Algorithm 表达式来计算循环中的字段,algorithm,language-agnostic,expression,Algorithm,Language Agnostic,Expression,我基本上有几个变量 0 < na < 250 0 < max <= 16 nb = (na + max - 1) / max 这个问题不是很清楚。也许你在寻找这样的东西: for (i=0;i < nb;++i) { n = i < nb - 1 ? max : (na - 1) % max + 1; } 这个问题不是很清楚。也许你在寻找这样的东西: for (i=0;i < nb;++i) { n = i < nb

我基本上有几个变量

0 < na < 250
0 < max <= 16
nb = (na + max - 1) / max

这个问题不是很清楚。也许你在寻找这样的东西:


for (i=0;i < nb;++i)
{ 
    n = i < nb - 1 ? max : (na - 1) % max + 1;
} 

这个问题不是很清楚。也许你在寻找这样的东西:


for (i=0;i < nb;++i)
{ 
    n = i < nb - 1 ? max : (na - 1) % max + 1;
} 

只是为了给线程添加更多的混乱:

如果只在前两种情况下打印max,则可以执行以下操作:不使用任何特定语言

//for 0
printf("i = %d, n = %d\n",i,max)
//for 1
printf("i = %d, n = %d\n",i,max)
//for the rest
for (i = 2; i<nb;i++) {
     printf("i = %d, n = %d\n",i,na - (i * max));
}
可以避免运算符执行两个for循环

for (i = 0; (i + 1) * max) > na AND i < nb;i++) {
     printf("i = %d, n = %d\n",i,0);
}
for (; i<nb;i++) {
     printf("i = %d, n = %d\n",i,na - (i * max));
}

只是为了给线程添加更多的混乱:

如果只在前两种情况下打印max,则可以执行以下操作:不使用任何特定语言

//for 0
printf("i = %d, n = %d\n",i,max)
//for 1
printf("i = %d, n = %d\n",i,max)
//for the rest
for (i = 2; i<nb;i++) {
     printf("i = %d, n = %d\n",i,na - (i * max));
}
可以避免运算符执行两个for循环

for (i = 0; (i + 1) * max) > na AND i < nb;i++) {
     printf("i = %d, n = %d\n",i,0);
}
for (; i<nb;i++) {
     printf("i = %d, n = %d\n",i,na - (i * max));
}

你不需要计算nb。这是一种方法C:

int na = 11;
int max = 4;

for (int i = 0, x = 0; x < na; i++, x += max)
{
     int n = Math.Min(max, na - x);
     Console.WriteLine("i = {0}, n = {1}", i, n);
} 

你不需要计算nb。这是一种方法C:

int na = 11;
int max = 4;

for (int i = 0, x = 0; x < na; i++, x += max)
{
     int n = Math.Min(max, na - x);
     Console.WriteLine("i = {0}, n = {1}", i, n);
} 

我想你把“I”、“na”和“nb”混在一起了。请编辑。请把你的实际问题弄清楚。你的计算是什么?你的计算是否随时间间隔i的变化而变化?至少对我来说,不清楚n是什么以及如何计算。你的代码给出了循环状态的示例,你想计算n,这应该与nb相同??在第一个示例中,您正在循环使用nb,在第二个示例中,您正在使用na和max,并且不计算任何内容,只打印数据。。。你想计算什么???na和max之间的nb????或者nb从na到max,或者nb是你的因变量,假设max从1开始,它的可能值在0到250之间,或者它也包括无穷大。现在我是否表示nb可以接受的所有可能值?n是什么?它和na,nb,max有什么关系?我想你把“I”,“na”和“nb”混在一起了。请编辑。请把你的实际问题弄清楚。你的计算是什么?你的计算是否随时间间隔i的变化而变化?至少对我来说,不清楚n是什么以及如何计算。你的代码给出了循环状态的示例,你想计算n,这应该与nb相同??在第一个示例中,您正在循环使用nb,在第二个示例中,您正在使用na和max,并且不计算任何内容,只打印数据。。。你想计算什么???na和max之间的nb????或者nb从na到max,或者nb是你的因变量,假设max从1开始,它的可能值在0到250之间,或者它也包括无穷大。现在我是否表示nb可以接受的所有可能值?n是什么?它与na,nb,max有什么关系?这不起作用。na=12时失败,max=4给出的是4,4,0,而不是4,4,4。你可以用int n=i