在循环中遍历负数,正数

时间:2015-07-27 10:42:47

标签: c++ loops for-loop

我想用C ++调用一个函数。

 check(T);  

按顺序:

check(T);  
check(T-1);
check(T+1);
check(T-2);
check(T+2);

我想循环播放,因为组合将来可能会增加。

3 个答案:

答案 0 :(得分:1)

check(T);

for(int i=1; i<N; i++)
{
    check(T-i);
    check(T+i);
}

这是你想要的吗?

答案 1 :(得分:0)

这是一个演示程序,其中显示了一种方法

#include <iostream>

int main()
{
    const int N = 10;

    for ( int i = 0, j = 0; i < N; i += j ^= 1 )
    {
        std::cout << ( j == 0 ? i : -i ) << std::endl; 
    }
}    

程序输出

0
-1
1
-2
2
-3
3
-4
4
-5
5
-6
6
-7
7
-8
8
-9
9

答案 2 :(得分:0)

如果要测试的组合可以用(索引)序列描述,则可以在函数中实现它。 对于上面的例子,这将是:

int sequence(int i) 
{
if(i % 2 != 0)
     return i - (i/2);
else
     return -(i-(i/2));
}

check(T)
for(int i=1; i<4; i++)
{
    check(T-sequence(i));
}

如果它们不是简单的可定义顺序,您可以将所有组合保存在数据结构(例如矢量)中,只需在for循环中遍历它。