打印给定范围内的所有好号
原文:https://www . geesforgeks . org/print-all-good-numbers-in-给定范围/
给定一个数字“d”和一个范围[L,R],其中 L < R, print all good numbers in given range that don’t contain digit ‘d’. A number is good if its every digit is larger than the sum of digits which are on the right side of that digit. For example 9620 is good number because 2 > 0,6 > 2+0 和 9 > 6+2+0。
示例:
Input: L = 410, R = 520, d = 3
Output: 410 420 421 510 520
All the numbers in output are good (every digit is more
than sum of digits on right of it) and don't have digit 3.
Input: L = 410, R = 520, d = 1
Output: 420 430 520
All the numbers in output are good (every digit is more
than sum of digits on right of it) and don't have digit 1.
这个想法是遍历给定范围内的所有数字。对于每个数字,遍历所有数字。遍历时,记录到目前为止的数字和。在任何时候,如果先前的总和大于或等于总和,则返回 false。此外,如果当前数字变为“d”,则返回 false。
下面是这个想法的实现。
C++
// C++ program to print good numbers in a given range [L, R]
#include<bits/stdc++.h>
using namespace std;
// To check whether n is a good number and doesn't contain
// digit 'd'.
bool isValid(int n, int d)
{
// Get last digit and initialize sum from right side
int digit = n%10;
int sum = digit;
// If last digit is d, return
if (digit == d)
return false;
// Traverse remaining digits
n /= 10;
while (n)
{
// Current digit
digit = n%10;
// If digit is d or digit is less than or
// equal to sum of digits on right side
if (digit == d || digit <= sum)
return false;
// Update sum and n
else
{
sum += digit;
n /= 10;
}
}
return 1;
}
// Print Good numbers in range [L, R]
void printGoodNumbers(int L, int R, int d)
{
// Traverse all numbers in given range
for (int i=L; i<=R; i++)
{
// If current numbers is good, print it.
if (isValid(i, d))
cout << i << " ";
}
}
// Driver program
int main()
{
int L = 410, R = 520, d = 3;
// Print good numbers in [L, R]
printGoodNumbers(L, R, d);
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java program to print good numbers in a given range [L, R]
import java.io.*;
class Numbers
{
// Function to check whether n is a good number and doesn't contain
// digit 'd'
static boolean isValid(int n, int d)
{
// Get last digit and initialize sum from right side
int digit = n%10;
int sum = digit;
// If last digit is d, return
if (digit == d)
return false;
// Traverse remaining digits
n /= 10;
while (n>0)
{
// Current digit
digit = n%10;
// If digit is d or digit is less than or
// equal to sum of digits on right side
if (digit == d || digit <= sum)
return false;
// Update sum and n
else
{
sum += digit;
n /= 10;
}
}
return true;
}
// Print Good numbers in range [L, R]
static void printGoodNumber(int L, int R, int d)
{
// Traverse all numbers in given range
for(int i=L;i<=R;i++)
{
// If current numbers is good, print it
if(isValid(i, d))
System.out.print(i+" ");
}
}
// Driver program
public static void main (String[] args)
{
int L = 410, R = 520, d = 3;
// Print good numbers in [L, R]
printGoodNumber(L, R, d);
}
}
Python 3
# Python3 program to print good
# numbers in a given range [L, R]
# Function to check whether n is
# a good number and doesn't contain
# digit 'd'
def isValid(n, d):
# Get last digit and initialize
# sum from right side
digit = n % 10;
sum = digit;
# If last digit is d, return
if (digit == d):
return False;
# Traverse remaining digits
n = int(n / 10);
while (n > 0):
# Current digit
digit = n % 10;
# If digit is d or digit is
# less than or equal to sum
# of digits on right side
if(digit == d or digit <= sum):
return False;
# Update sum and n
else:
sum += digit;
n = int(n / 10);
return True;
# Print Good numbers in range [L, R]
def printGoodNumber(L, R, d):
# Traverse all numbers
# in given range
for i in range(L, R + 1):
# If current numbers is good,
# print it
if(isValid(i, d)):
print(i, end = " ");
# Driver Code
L = 410;
R = 520;
d = 3;
# Print good numbers in [L, R]
printGoodNumber(L, R, d);
# This code is contributed by mits
C
// C# program to print good numbers in a
// given range [L, R]
using System;
class GFG {
// Function to check whether n is a good
// number and doesn't contain digit 'd'
static bool isValid(int n, int d)
{
// Get last digit and initialize
// sum from right side
int digit = n % 10;
int sum = digit;
// If last digit is d, return
if (digit == d)
return false;
// Traverse remaining digits
n /= 10;
while (n > 0)
{
// Current digit
digit = n % 10;
// If digit is d or digit is
// less than or equal to sum of
// digits on right side
if (digit == d || digit <= sum)
return false;
// Update sum and n
else
{
sum += digit;
n /= 10;
}
}
return true;
}
// Print Good numbers in range [L, R]
static void printGoodNumber(int L,
int R, int d)
{
// Traverse all numbers in given range
for(int i = L; i <= R; i++)
{
// If current numbers is good,
// print it
if(isValid(i, d))
Console.Write(i+" ");
}
}
// Driver program
public static void Main ()
{
int L = 410, R = 520, d = 3;
// Print good numbers in [L, R]
printGoodNumber(L, R, d);
}
}
//This code is contributed by vt_m.
服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
<?php
// PHP program to print good
// numbers in a given range [L, R]
// To check whether n is a good
// number and doesn't contain digit 'd'.
function isValid($n, $d)
{
// Get last digit and initialize
// sum from right side
$digit = $n % 10;
$sum = $digit;
// If last digit is d, return
if ($digit == $d)
return false;
// Traverse remaining digits
$n = (int)($n / 10);
while ($n)
{
// Current digit
$digit = $n % 10;
// If digit is d or digit is less
// than or equal to sum of digits
// on right side
if ($digit == $d || $digit <= $sum)
return false;
// Update sum and n
else
{
$sum += $digit;
$n = (int)($n / 10);
}
}
return 1;
}
// Print Good numbers in range [L, R]
function printGoodNumbers($L, $R, $d)
{
// Traverse all numbers in given range
for ($i = $L; $i <= $R; $i++)
{
// If current numbers is good,
// print it.
if (isValid($i, $d))
echo $i . " ";
}
}
// Driver Code
$L = 410;
$R = 520;
$d = 3;
// Print good numbers in [L, R]
printGoodNumbers($L, $R, $d);
// This code is contributed by mits
?>
java 描述语言
<script>
// Javascript program to print good numbers
// in a given range [L, R]class Numbers
// Function to check whether n is a good
// number and doesn't contain digit 'd'
function isValid(n, d)
{
// Get last digit and initialize
// sum from right side
var digit = n % 10;
var sum = digit;
// If last digit is d, return
if (digit == d)
return false;
// Traverse remaining digits
n = parseInt(n / 10);
while (n > 0)
{
// Current digit
digit = n%10;
// If digit is d or digit is less than or
// equal to sum of digits on right side
if (digit == d || digit <= sum)
return false;
// Update sum and n
else
{
sum += digit;
n = parseInt(n / 10);
}
}
return true;
}
// Print Good numbers in range [L, R]
function printGoodNumber(L, R, d)
{
// Traverse all numbers in given range
for(i = L; i <= R; i++)
{
// If current numbers is good, print it
if (isValid(i, d))
document.write(i + " ");
}
}
// Driver code
var L = 410, R = 520, d = 3;
// Print good numbers in [L, R]
printGoodNumber(L, R, d);
// This code is contributed by shikhasingrajput
</script>
输出:
410 420 421 510 520
如果发现有不正确的地方,请写评论,或者想分享更多关于以上讨论话题的信息
版权属于:月萌API www.moonapi.com,转载请注明出处