如何检查从1到N(N <100)中有多少个数字,而不将其转换为字符串进行检查?
答案 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}