给定一个整数N ,任务是打印出前N个整数,它们的总和为10 。
例子:
Input: N = 4
Output: 19 28 37 46
Input: N = 6
Output: 19 28 37 46 55 64
方法:初始化num = 19以获得序列的第一个数字,现在将9加上前一个数字,并检查新数字的位数之和是否为10 。如果是,则这是序列的下一个数字,这是因为所需序列的任何两个连续数字之间的差值至少为9 。
下面是上述方法的实现:
C++
// C++ implementation of the approach
#include
using namespace std;
// Function to return the
// sum of digits of n
int sum(int n)
{
int sum = 0;
while (n) {
// Add the last digit to the sum
sum = sum + n % 10;
// Remove last digit
n = n / 10;
}
// Return the sum of digits
return sum;
}
// Function to print the first n numbers
// whose sum of digits is 10
void firstN(int n)
{
// First number of the series is 19
int num = 19, cnt = 1;
while (cnt != n) {
// If the sum of digits of the
// current number is equal to 10
if (sum(num) == 10) {
// Print the number
cout << num << " ";
cnt++;
}
// Add 9 to the previous number
num += 9;
}
}
// Driver code
int main()
{
int n = 10;
firstN(n);
return 0;
}
Java
// Java implementation of the approach
import java.util.*;
class GFG
{
// Function to return the
// sum of digits of n
static int sum(int n)
{
int sum = 0;
while (n > 0)
{
// Add the last digit to the sum
sum = sum + n % 10;
// Remove last digit
n = n / 10;
}
// Return the sum of digits
return sum;
}
// Function to print the first n numbers
// whose sum of digits is 10
static void firstN(int n)
{
// First number of the series is 19
int num = 19, cnt = 1;
while (cnt != n)
{
// If the sum of digits of the
// current number is equal to 10
if (sum(num) == 10)
{
// Print the number
System.out.print(num + " ");
cnt++;
}
// Add 9 to the previous number
num += 9;
}
}
// Driver code
public static void main(String[] args)
{
int n = 10;
firstN(n);
}
}
// This code is contributed by Rajput-Ji
Python3
# Python3 implementation of the approach
# Function to return the
# sum of digits of n
def sum(n) :
sum = 0;
while (n) :
# Add the last digit to the sum
sum = sum + n % 10;
# Remove last digit
n = n // 10;
# Return the sum of digits
return sum;
# Function to print the first n numbers
# whose sum of digits is 10
def firstN(n) :
# First number of the series is 19
num = 19; cnt = 1;
while (cnt != n) :
# If the sum of digits of the
# current number is equal to 10
if (sum(num) == 10) :
# Print the number
print(num,end= " ");
cnt += 1;
# Add 9 to the previous number
num += 9;
# Driver code
if __name__ == "__main__" :
n = 10;
firstN(n);
# This code is contributed by AnkitRai01
C#
// C# implementation of the approach
using System;
class GFG
{
// Function to return the
// sum of digits of n
static int sum(int n)
{
int sum = 0;
while (n > 0)
{
// Add the last digit to the sum
sum = sum + n % 10;
// Remove last digit
n = n / 10;
}
// Return the sum of digits
return sum;
}
// Function to print the first n numbers
// whose sum of digits is 10
static void firstN(int n)
{
// First number of the series is 19
int num = 19, cnt = 1;
while (cnt != n)
{
// If the sum of digits of the
// current number is equal to 10
if (sum(num) == 10)
{
// Print the number
Console.Write(num + " ");
cnt++;
}
// Add 9 to the previous number
num += 9;
}
}
// Driver code
public static void Main(String[] args)
{
int n = 10;
firstN(n);
}
}
// This code is contributed by PrinciRaj1992
Javascript
输出:
19 28 37 46 55 64 73 82 91