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

จำนวนการเคลื่อนที่เพื่อเดา Permutation ใน C++


ให้ N หาจำนวนการเคลื่อนที่ (moves) ที่ต้องใช้เดา permutation ใน worst case สูตรคือ n! (แฟกทอเรียล) แต่โค้ดตัวอย่างคำนวณแบบอื่น

ตัวอย่าง:

Input: 5
Output: 129

อัลกอริทึม

  • กำหนด n
  • count = 0
  • วนลูป i = 1 ถึง n: count += i * (n - i)
  • count += n
  • คืนค่า count

การเขียนโปรแกรม C++

#include <bits/stdc++.h> using namespace std; int getNumberMoves(int n) {    int count = 0;    for (int i = 1; i <= n; i++) {       count += i * (n - i);    }    count += n;    return count; } int main() {    int n = 9;    cout << getNumberMoves(n) << endl;    return 0; }

ผลลัพธ์

129