2015-09-06 77 views
-3

如何檢查從1到N(N < 100)中有多少個數字爲3,但沒有將其轉換爲字符串進行檢查?檢查從1到N的數字是否有數字3

+0

可能重複:http://stackoverflow.com/questions/4977456/how-to-check-if-a-int-var-contains-a-specific-number – amito

回答

3

您可以使用mod % 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) 

While循環檢查

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

當你達到30? 30%10 = 0,31%10 = 1,32%10 = 2 – user3711671

+0

它不是'30%3'。它的'30%10'。 – Haris

+0

是的,我的錯誤,它不適用於10。 – user3711671

0

您可以使用modulas運營商的%例如,如果(N%3 == 1){成功操作}

2

我認爲最簡單的方法是餘數和檢查是否數爲30和39之間

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