想要跳过以8个数字

时间:2016-12-20 01:24:09

标签: c++

在下面的代码中,我检查一个数字是否以8结尾,如果是,我跳过它。该代码正常工作;但是,我想这样做而不用硬编码每个以8结尾的数字。

    for(number1 = 0; number1 <= number2; number1++){

        if(number1%2 == 0){

            if(number1 == 8 || number1 == 18 || number1 == 28){

                continue;

            }
            else{
                cout << " " << number1<< endl;
            }
        }




    }

2 个答案:

答案 0 :(得分:2)

只需使用modulo。 number1 % 10是最后一位数(正数为十进制数)。 所以,只需检查number1 % 10 == 8

等效代码是:

for (number1 = 0; number1 <= number2; number1++) {
    if (number1 % 2 == 0 && number1 % 10 != 8) {
        cout << " " << number1 << endl;
    }
}

答案 1 :(得分:0)

下面是一个在循环中打印所有不以8结尾的数字的例子。

操作x % 10modulus)返回最低位的值。因此,您可以将其与8进行比较,以获得结果。

#include <iostream>

int main(){

    for (int i = 0; i < 20; i++){
        if (i % 10 != 8){
            std::cout << i << '\n'; 
        }
    }
}