检查1到N之间的数字是否包含数字3

时间:2015-09-06 07:34:00

标签: algorithm

如何检查从1到N(N <100)中有多少个数字,而不将其转换为字符串进行检查?

3 个答案:

答案 0 :(得分:3)

您可以使用% mod运算符逐个获取数字的数字,并使用3进行检查。

像,

int x;
while(num != 0)        // num here goes from 1 to 100
{
    x = num % 10;
    if(x == 3)
    {
        //eureka
    }
    num /= 10;
}

修改

让我们检查35的算法。

第一次迭代

//num = 35

x = num % 10;           // x = 5 (35 % 10)
if(x == 3)             // is x equal to 3 (NO)
{
    //eureka
}
num /= 10;             // num = 3 (35 / 10)

循环检查

num != 0              // num = 5

第二次迭代

// num = 35

x = num % 10;           // x = 3 (5 % 10)
if(x == 3)             // is x equal to 3 (YES)
{
    //eureka
}
num /= 10;             // num = 0 (5 / 10)

循环检查

num != 0              // num = 0
                      // While loop exits

答案 1 :(得分:2)

我认为最简单的方法是通过余数检查数字是否在30到39之间

if((x%10)==3||(x<40&&x>=30))
{
//Thats it
}

答案 2 :(得分:0)

您可以使用modulas运算符%,以便if(n%3 == 1){success operation}