给定整数N ,任务是计算从数字1到N的递减对。
A pair (x, y) is said to be decreasing if x > y
例子:
Input: N = 8
Output: 3
Explanation:
Decreasing pairs are: (7, 1), (6, 2), (5, 3).
Input: N = 9
Output: 4
Explanation:
Decreasing pairs are: (8, 1), (7, 2), (6, 3), (5, 4).
方法:考虑以下情况:
If N = 1 => Count = 0
If N = 2 => Count = 1 {(2, 1)}
If N = 3 => Count = 1 {(3, 1) or (3, 2)}
If N = 4 => Count = 2 {(4, 3), (2, 1)}
If N = 5 => Count = 2 {(5, 4), (3, 2)}
If N = 6 => Count = 3 {(6, 5), (4, 3), (2, 1)}
.
.
and so on
可以清楚地观察到
下面是上述方法的实现:
C++
// C++ program to count decreasing
// pairs formed from numbers 1 to N
#include
using namespace std;
// Function to count the
// possible number of pairs
int divParts(int N)
{
if (N % 2 == 0)
// if the number is even
// then the answer in (N/2)-1
cout << (N / 2) - 1 << endl;
else
// if the number is odd
// then the answer in N/2
cout << N / 2 << endl;
}
// Driver code
int main()
{
int N = 8;
divParts(N);
return 0;
}
Java
// Java program to count decreasing
// pairs formed from numbers 1 to N
import java.util.*;
class GFG{
// Function to count the
// possible number of pairs
static void divParts(int N)
{
if (N % 2 == 0)
// if the number is even
// then the answer in (N/2)-1
System.out.println((N / 2) - 1);
else
// if the number is odd
// then the answer in N/2
System.out.println((N / 2));
}
// Driver code
public static void main(String[] args)
{
int N = 8;
divParts(N);
}
}
// This code is contributed by offbeat
Python3
# Python3 program to count decreasing
# pairs formed from numbers 1 to N
# Function to count the
# possible number of pairs
def divParts(N):
if (N % 2 == 0):
# if the number is even
# then the answer in (N/2)-1
print((N / 2) - 1);
else:
# if the number is odd
# then the answer in N/2
print(N / 2);
# Driver code
N = 8;
divParts(N);
# This code is contributed by Code_Mech
C#
// C# program to count decreasing
// pairs formed from numbers 1 to N
using System;
class GFG{
// Function to count the
// possible number of pairs
static void divParts(int N)
{
if (N % 2 == 0)
// if the number is even
// then the answer in (N/2)-1
Console.WriteLine((N / 2) - 1);
else
// if the number is odd
// then the answer in N/2
Console.WriteLine((N / 2));
}
// Driver code
public static void Main()
{
int N = 8;
divParts(N);
}
}
// This code is contributed by Code_Mech
输出:
3