2012-12-08 42 views
8

मैं जावा में यह कैसे करूँगा? यदि अंतिम अंक भी है तो पता लगाएं कि कोई संख्या 2 से विभाजित है या नहीं। (0,2,4,6,8) उदाहरण: 128, 129 है नहीं हैबिना मॉड्यूल ऑपरेटर के जावा में भी संख्याओं के लिए परीक्षण

+1

@ एवी।'उत्तर खोजने के लिए% का उपयोग नहीं कर सकता' -> शीर्षक में। –

+0

अधिक इष्टतम बिट परीक्षण के अलावा (मामले 2 के लिए), पूर्णांक विभाजन भी करेगा (2 से अधिक मामलों के लिए): 'n == (n/2) * 2'। –

+3

और * क्यों * आप मॉड्यूल ऑपरेटर से बचना चाहते हैं? सबसे पहले, कोड को पठनीय और प्रोग्रामर के * इरादे * का वर्णन करना चाहिए, इसलिए '% 1 == 0' * एक और 1 == 0' से अधिक * अधिक अभिव्यक्तिपूर्ण है, जो अंतर्निहित कुछ संपत्ति का शोषण करता है बाइनरी प्रतिनिधित्व। – Heinzi

उत्तर

5

(के लिए देखें कि क्या सही सबसे बिट 1 है तो अपने नहीं, बिटवाइज़ ऑपरेटर्स

तार्किक करते हैं और साथ का उपयोग करके उदाहरण)

yourNumber & 1 
5

चेक कम से कम महत्वपूर्ण बिट:

boolean even = (x & 1) == 0; 

LSB, और अजीब के लिए भी संख्या के लिए 01 है सिर्फ दशमलव संख्या कम से कम महत्वपूर्ण के लिए की तरह कैंट अंक 0 है यदि यह 10 द्वारा विभाजित है।

14

बिटवाइज़ आपरेशन and

if((number&1) == 0) 

बिटवाइस AND ऑपरेटर का प्रयोग करें &

& (बिटवाइज़ और) ऑपरेटर दूसरे की इसी बिट को अपनी पहली संकार्य के प्रत्येक बिट तुलना संकार्य। यदि दोनों बिट्स 1 हैं, तो परिणाम के इसी बिट को 1 पर सेट किया गया है। अन्यथा, यह संबंधित परिणाम बिट 0 (source) सेट करता है।

द्विआधारी प्रारूप भी संख्या में कम से कम महत्वपूर्ण शून्य के बराबर सा है। इसे जानने और & ऑपरेटर का उपयोग करके आप यह पता लगा सकते हैं कि यह भी है या नहीं।

तो यह एक संख्या लेता है ..abcdy और ..00001 के साथ तुलना करता है यदि y शून्य से ..abcdy & ..00001 भी शून्य है, इस प्रकार भी एक संख्या है।

0

Myway;)

सार्वजनिक वर्ग Even_Odd {

/** 
* @param args 
*/ 
public static void main(String[] args) 
{ 
    int val=550; 
    // TODO Auto-generated method stub 
    while(val>=0) 
    { 
     if(val==1) 
     { 
      System.out.println("Odd Number"); 
     } 
     else if(val==0) 
     { 
      System.out.println("Even Number"); 
     } 

      val=val-2; 
     // System.out.println(val); 

    } 
} 

}

+0

ठंडा है .. लेकिन यदि आपके पास 15-20 अंक संख्या है तो कितनी बार लूप निष्पादित होता है। परफॉर्मेंस बेकार है .. आपको चीजों को करने का बेहतर तरीका सीखना चाहिए, हालांकि उन्हें पहले सीखना मुश्किल होता है। सिर्फ आप ही नहीं, बल्कि सामान्य रूप से प्रोग्राममे के रूप में। आर – Stunner

0
if((n|1)==n) 
    System.out.println("odd"); 
else 
    System.out.println("even"); 

कारण: यदि LSB 1 है, और यहां तक ​​कि अन्यथा संख्या विषम है। जब एन | 1 किया जाता है, तो अजीब का एलएसबी वही रहता है जिससे परिणामी संख्या बदल नहीं जाती है, जबकि एक संख्या का एलएसबी भी 1 हो जाता है, इस प्रकार संख्या बदलता है।

0

फूट डालो द्वारा संख्या और, इस सवाल का जवाब गुणा करता है, तो आप अपने मूल नंबर मिल तो संख्या है "यहाँ तक कि" नहीं तो नंबर "अजीब"

public class EvenOrOdd 
{ 
    public static void main(String args[]) 
    { 
     int value = 129; 

     if((value/2)*2==value) 
     { 
      System.out.println("The Given Number \""+value+"\" is Even"); 
     } 
     else 
     { 
      System.out.println("The Given Number \""+value+"\" is Odd"); 
     } 
    } 
} 
है अगर
0
import java.io.*; 
import java.util.*; 
public class CheckNumber{ 
public static void main(String... args)throws IOException{ 

    BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 

    System.out.println("Please enter the number to check even or odd"); 

    int number=Integer.parseInt(br.readLine()); 

    String temp=number+""; //convert number to string 

    char ch=temp.charAt(temp.length()-1); //get last character 

    temp=ch+""; 

    if(temp.equals("0") || temp.equals("2") || temp.equals("4") || temp.equals("6") || temp.equals("8")) //check last number is even 
     System.out.println("Number is even"); 
    else 
     System.out.println("Number is odd"); 
} 

}