ให้ 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