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

ตรวจสอบว่าสามารถเขียนตัวเลขเป็นผลรวมของจำนวนเต็มสามจำนวนติดต่อกันใน C++ . ได้หรือไม่


ในส่วนนี้เราจะมาดูกันว่าตัวเลขสามารถแสดงเป็นตัวเลขต่อเนื่องกันได้หรือไม่ สมมติว่าตัวเลขคือ 27 ซึ่งสามารถแทนด้วย 8 + 9 + 10

ซึ่งสามารถแก้ไขได้ในสองแนวทางที่แตกต่างกัน วิธีแรกคือแนวทางที่ไร้เดียงสา ในแนวทางนั้นเราต้องเช็คว่า i + (i + 1) + (i + 2) เท่ากับตัวเลขหรือไม่ อีกวิธีที่มีประสิทธิภาพคือการตรวจสอบว่าจำนวนนั้นหารด้วย 3 ลงตัวหรือไม่ สมมติว่าตัวเลข x สามารถแทนด้วย 1 วินาทีติดต่อกันได้ 3 ครั้ง จากนั้น x =(y - 1) + y + (y + 1) =3y ดังนั้นจำนวนจะต้องหารด้วย 3 ลงตัว

ตัวอย่าง

#include <iostream>
using namespace std;
bool hasThreeNums(int n) {
   if(n % 3 == 0){
      return true;
   }
   return false;
}
int main() {
   int num = 27;
   if(hasThreeNums(num)){
      cout << "Can be represented";
   }else{
      cout << "Cannot be presented";
   }
}

ผลลัพธ์

Can be represented