Computer >> Máy Tính >  >> Lập trình >> C ++

Sắp xếp xu trong C ++


Giả sử chúng ta có n đồng xu muốn xếp thành hình cầu thang, mỗi hàng thứ k phải có đúng k đồng xu. Vì vậy, nếu chúng ta có n, thì chúng ta phải tìm tổng số các hàng cầu thang đầy đủ có thể được tạo thành.

Vì vậy, nếu đầu vào là 5, thì đầu ra sẽ là 2, vì sử dụng 5 đồng, chúng ta có thể tạo ra hai hàng viết hoa đầy đủ, hàng cuối cùng cần ba, nhưng chúng ta phải giữ lại 2 -

*
**
**

Điều này có thể được thực hiện trực tiếp bằng cách sử dụng công thức này -

$$ \ frac {\ sqrt {(8n + 1)} - 1} {2} $$

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int arrangeCoins(int n) {
      return (sqrt(8*(long long)n+1)-1)/2;
   }
};
main(){
   Solution ob;
   cout << (ob.arrangeCoins(13));
}

Đầu vào

13

Đầu ra

4