ที่นี่เราจะดูว่าตัวเลขหนึ่งหมายเลขสามารถแสดงเป็นผลรวมของตัวเลขสองตัวหรือมากกว่าติดต่อกันได้หรือไม่ สมมติว่าตัวเลขคือ 12 ซึ่งแสดงเป็น 3+4+5
มีวิธีการที่ตรงและง่ายที่สุดในการแก้ปัญหานี้ หากตัวเลขเป็นเลขยกกำลัง 2 จะไม่สามารถแสดงเป็นผลรวมของตัวเลขบางตัวที่ต่อเนื่องกันได้ มีข้อเท็จจริงสองข้อที่เราต้องจำไว้
- ผลรวมของเลขสองตัวติดต่อกันเป็นเลขคี่ จากนั้นหนึ่งในนั้นจะเป็นเลขคี่ อีกตัวหนึ่งเป็นเลขคู่
- ข้อเท็จจริงที่สองคือ 2 n =2 (n-1) + 2 (n-1) .
ตัวอย่าง
#include <iostream> using namespace std; bool isSumofconsecutiveNumbers(int n) { if((n & (n-1)) && n){ return true; } else { return false; } } int main() { int num = 36; if(isSumofconsecutiveNumbers(num)){ cout << "Can be represented"; } else { cout << "Cannot be represented"; } }
ผลลัพธ์
Can be represented