📜  数字–产品–顺序

📅  最后修改于: 2021-04-23 22:43:55             🧑  作者: Mango

给定数字N,任务是将序列打印到N。序列为:1、2、4、8、16、22、26、38、62、74、102、104、108、116、122、126 ,138、162等…此序列称为“数字–产品–序列”。在本系列中,我们取数字的每个非零数字,将它们相乘,然后将乘积加到数字本身。

例子:

Input : N = 10
Output :1 2 4 8 16 22 26 38 62 74

Input : N = 7
Output :1 2 4 8 16 22 26

解释:

1 + (1 * 1)  = 1 + 1  = 2
2 + (2 * 1)  = 2 + 2  = 4
4 + (4 * 1)  = 4 + 4  = 8
8 + (8 * 1)  = 8 + 8  = 16
16 + (1 * 6) = 16 + 6 = 22
22 + (2 * 2) = 22 + 4 = 26
26 + (2 * 6) = 26 + 12 = 38
38 + (3 * 8) = 38 + 24 = 62
62 + (6 * 2) = 62 + 12 = 74
and so on...
C++
// CPP program for Digit Product Sequence
#include 
using namespace std;
  
// function to produce and print Digit
// Product Sequence
void digit_product_Sum(int N)
{
    // Array which store sequence
    int a[N];
  
    // Temporary variable to store product
    int product = 1;
  
    // Initialize first element of the 
    // array with 1
    a[0] = 1;
  
    // Run a loop from 1 to N. Check if 
    // previous number is single digit or
    // not. If yes then product = 1 else
    // take modulus. Then again check if 
    // previous number is sigle digit or 
    // not if yes then store previous number,
    // else store its first value Then for
    // every i store value in the array.
    for (int i = 1; i <= N; i++) {
        product = a[i - 1] / 10;
      
        if (product == 0)
            product = 1;
        else
            product = a[i - 1] % 10;
      
        int val = a[i - 1] / 10;
      
        if (val == 0)
            val = a[i - 1];
      
        a[i] = a[i - 1] + (val * product);
    }
  
    // Print sequence
    for (int i = 0; i < N; i++)
        cout << a[i] << " ";
}
  
// Driver Code
int main()
{
    // Value of N
    int N = 10;
  
    // Calling function
    digit_product_Sum(N);
    return 0;
}


Java
// Java program for Digit Product Sequence
  
// function to produce and print Digit
// Product Sequence
import java.lang.*;
import java.io.*;
  
class GFG
{
    public static void digit_product_Sum(int N)
    {
        // Array which store sequence
        int a[] = new int[N+1] ;
  
        // Temporary variable to store product
        int product = 1;
  
        // Initialize first element of the
        // array with 1
        a[0] = 1;
  
        // Run a loop from 1 to N. Check if
        // previous number is single digit or
        // not. If yes then product = 1 else
        // take modulus. Then again check if
        // previous number is sigle digit or
        // not if yes then store previous number,
        // else store its first value Then for
        // every i store value in the array.
        for (int i = 1; i <= N; i++)
        {
            product = a[i - 1] / 10;
  
            if (product == 0)
                product = 1;
            else
                product = a[i - 1] % 10;
  
            int val = a[i - 1] / 10;
  
            if (val == 0)
                val = a[i - 1];
  
            a[i] = a[i - 1] + (val * product);
        }
  
        // Print sequence
        for (int i = 0; i < N; i++)
            System.out.print(a[i] + " ");
    }
  
// Driver Code
    public static void main(String[] args)
    {
        // Value of N
        int N = 10;
  
        // Calling function
        digit_product_Sum(N);
  
    }
}
// Code contributed by Mohit Gupta_OMG <(0_o)>


Python3
# Python3 program for 
# Digit Product Sequence
  
# function to produce and 
# print Digit Product Sequence
  
def digit_product_Sum(N):
      
    # Array which store sequence
    a = [0] * (N + 1);
      
    # Temporary variable
    # to store product
    product = 1;
      
    # Initialize first element 
    # of the array with 1
    a[0] = 1;
      
    # Run a loop from 1 to N. 
    # Check if previous number 
    # is single digit or not. 
    # If yes then product = 1 
    # else take modulus. Then 
    # again check if previous 
    # number is sigle digit or
    # not if yes then store 
    # previous number, else store 
    # its first value Then for
    # every i store value in 
    # the array.
    for i in range(1, N + 1):
        product = int(a[i - 1] / 10);
        if (product == 0):
            product = 1;
        else:
            product = a[i - 1] % 10;
          
        val = int(a[i - 1] / 10);
        if (val == 0):
            val = a[i - 1];
        a[i] = a[i - 1] + (val * product);
      
    # Print sequence
    for i in range(N):
        print(a[i], end = " ");
          
# Driver Code
  
# Value of N
N = 10;
  
# Calling function
digit_product_Sum(N);
  
# This Code is contributed
# by mits.


C#
// C# program for Digit Product Sequence
// function to produce and print Digit
// Product Sequence
using System;
  
class GFG
{
    public static void digit_product_Sum(int N)
    {
        // Array which store sequence
        int []a = new int[N + 1] ;
  
        // Temporary variable to store product
        int product = 1;
  
        // Initialize first element of the
        // array with 1
        a[0] = 1;
  
        // Run a loop from 1 to N. Check if
        // previous number is single digit or
        // not. If yes then product = 1 else
        // take modulus. Then again check if
        // previous number is sigle digit or
        // not if yes then store previous number,
        // else store its first value Then for
        // every i store value in the array.
        for (int i = 1; i <= N; i++)
        {
            product = a[i - 1] / 10;
  
            if (product == 0)
                product = 1;
            else
                product = a[i - 1] % 10;
  
            int val = a[i - 1] / 10;
  
            if (val == 0)
                val = a[i - 1];
  
            a[i] = a[i - 1] + (val * product);
        }
  
        // Print sequence
        for (int i = 0; i < N; i++)
        Console.Write(a[i] + " ");
    }
  
    // Driver Code
    public static void Main()
    {
        // Value of N
        int N = 10;
  
        // Calling function
        digit_product_Sum(N);
  
    }
}
// This Code is contributed by vt_m.


PHP


输出:

1 2 4 8 16 22 26 38 62 74