蓝桥杯 ALGO-104 算法训练 阿尔法乘积

算法训练 阿尔法乘积  

时间限制:1.0s   内存限制:512.0MB

    

问题描述

  计算一个整数的阿尔法乘积。对于一个整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积。例如:4018224312的阿尔法乘积等于8,它是按照以下的步骤来计算的:
  4018224312 → 4*1*8*2*2*4*3*1*2 → 3072 → 3*7*2 → 42 → 4*2 → 8
  编写一个程序,输入一个正整数(该整数不会超过6,000,000),输出它的阿尔法乘积。
  输入格式:输入只有一行,即一个正整数。
  输出格式:输出相应的阿尔法乘积。
  输入输出样例

样例输入

4018224312

样例输出

8

#include <stdio.h>

long long int digit_product(long long int n)
{
    long long int prod = 1, digit;
    while (n)
    {
        digit = n % 10;
        if (digit)
            prod *= digit;
        n /= 10;
    }
    return prod;
}

long long int alpha_product(long long int n)
{
    while (n >= 10)
        n = digit_product(n);
    return n;
}

int main()
{
    long long int n;

    scanf("%lld", &n);
    printf("%lld", alpha_product(n));

    return 0;
}
发布了183 篇原创文章 · 获赞 40 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/liulizhi1996/article/details/103979676