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

ตรวจสอบว่าตัวเลขสามารถแสดงเป็นผลรวมของตัวเลขต่อเนื่องในภาษา C++ . ได้หรือไม่


ที่นี่เราจะดูว่าตัวเลขหนึ่งหมายเลขสามารถแสดงเป็นผลรวมของตัวเลขสองตัวหรือมากกว่าติดต่อกันได้หรือไม่ สมมติว่าตัวเลขคือ 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