给定一个整数N ,任务是要找到一个数字,一个数字为N的回文率。
该数字可能带有前导零。
例子:
Input: N = 5
Output: 1 / 100
Input: N = 6
Output: 1 / 1000
解决方案:
- 由于允许前导零,所以N位数字的总数为10 N。
- 当前N / 2个数字与后N / 2个数字以相反的顺序匹配时,数字就是回文。
- 对于偶数个数字,我们可以选择第一个N / 2个数字,然后复制它们以形成其余的N / 2个数字,因此我们可以选择(N)/ 2个数字。
- 对于奇数个数字,我们可以选择第一个(N-1)/ 2个数字,然后复制它们以形成其余(N-1)/ 2个数字,因此我们可以选择(N + 1)/ 2个数字。
- 因此,一个N位数为回文数的概率为10 ceil(N / 2) / 10 N或1/10 floor(N / 2)
下面是该方法的实现:
C++
// C++ code of above approach
#include
using namespace std;
// Find the probability that a
// n digit number is palindrome
void solve(int n)
{
int n_2 = n / 2;
// Denominator
string den;
den = "1";
// Assign 10^(floor(n/2)) to
// denominator
while (n_2--)
den += '0';
// Display the answer
cout << 1 << "/" << den << "\n";
}
// Driver code
int main()
{
int N = 5;
solve(N);
return 0;
}
Java
// Java code of above approach
import java.util.*;
class GFG
{
// Find the probability that a
// n digit number is palindrome
static void solve(int n)
{
int n_2 = n / 2;
// Denominator
String den;
den = "1";
// Assign 10^(floor(n/2)) to
// denominator
while (n_2-- > 0)
den += '0';
// Display the answer
System.out.println(1 + "/" + den);
}
// Driver code
public static void main(String[] args)
{
int N = 5;
solve(N);
}
}
// This code is contributed by Rajput-Ji
Python3
# Python3 code of above approach
# Find the probability that a
# n digit number is palindrome
def solve(n) :
n_2 = n // 2;
# Denominator
den = "1";
# Assign 10^(floor(n/2)) to
# denominator
while (n_2) :
den += '0';
n_2 -= 1
# Display the answer
print(str(1) + "/" + str(den))
# Driver code
if __name__ == "__main__" :
N = 5;
solve(N);
# This code is contributed by AnkitRai01
C#
// C# implementation of the approach
using System;
class GFG
{
// Find the probability that a
// n digit number is palindrome
static void solve(int n)
{
int n_2 = n / 2;
// Denominator
String den;
den = "1";
// Assign 10^(floor(n/2)) to
// denominator
while (n_2-- > 0)
den += '0';
// Display the answer
Console.WriteLine(1 + "/" + den);
}
// Driver code
public static void Main(String[] args)
{
int N = 5;
solve(N);
}
}
// This code is contributed by PrinciRaj1992
输出:
1/100