Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ พิมพ์ "Even" หรือ "Odd" โดยไม่ใช้คำสั่งเงื่อนไข


ในส่วนนี้เราจะดูวิธีตรวจสอบว่าตัวเลขเป็นคี่หรือคู่โดยไม่ใช้คำสั่งเงื่อนไขแบบใดๆ เช่น (<, <=, !=, >, >=, ==)

เราสามารถตรวจสอบคี่หรือคู่ได้ง่ายด้วยคำสั่งเงื่อนไข หารตัวเลขด้วย 2 แล้วตรวจสอบว่าเศษเป็น 0 หรือไม่ ถ้าเป็น 0 คือคู่ มิฉะนั้นสามารถทำ AND แบบบิต (bitwise AND) กับตัวเลขและ 1 ได้ ถ้าผลลัพธ์เป็น 0 คือคู่ มิฉะนั้นคี่

ที่นี่ไม่สามารถใช้คำสั่งเงื่อนไขได้ เราจะดู 2 วิธีที่แตกต่างกันในการตรวจสอบคี่หรือคู่

วิธีที่ 1

ที่นี่เราจะสร้างอาร์เรย์ของสตริง ตำแหน่งดัชนี 0 จะเก็บ "Even" และตำแหน่งดัชนี 1 จะเก็บ "Odd" เราสามารถส่งเศษหลังจากหารตัวเลขด้วย 2 เป็นดัชนีเพื่อรับผลลัพธ์โดยตรง

โค้ดตัวอย่าง

#include <iostream>
using namespace std;

int main() {
    int n;
    string arr[2] = {"Even", "Odd"};
    cout << "Enter a number: ";
    cin >> n;
    cout << "The number is: " << arr[n % 2];
}

ผลลัพธ์ตัวอย่าง 1

Enter a number: 40
The number is: Even

ผลลัพธ์ตัวอย่าง 2

Enter a number: 89
The number is: Odd

วิธีที่ 2

นี่คือวิธีที่สอง ใช้เทคนิคบางอย่าง ที่นี่ใช้ตัวดำเนินการตรรกะ (logical) และบิต (bitwise) ตรงแรกเราทำ AND แบบบิตกับตัวเลขและ 1 จากนั้นใช้ logical AND เพื่อพิมพ์คี่หรือคู่ เมื่อผลลัพธ์ของ bitwise AND เป็น 1 logical AND จะคืนค่า odd มิฉะนั้นจะคืนค่า even

โค้ดตัวอย่าง

#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;
    (n & 1 && cout << "odd") || cout << "even";
}

ผลลัพธ์ตัวอย่าง 1

Enter a number: 40
even

ผลลัพธ์ตัวอย่าง 2

Enter a number: 89
odd