首页 > 学院 > 开发设计 > 正文

算法训练 阿尔法乘积

2019-11-08 00:58:59
字体:
来源:转载
供稿:网友

算法训练 阿尔法乘积 

题目描述

计算一个整数的阿尔法乘积。对于一个整数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"  

int alpha(long long int n)  {      if(n<10){          return n;                         //递归先设置出口(小于10的情况)      }else{          long long int a=1;          while(n){              if(n%10!=0){  a*=n%10;                  n/=10;              }else n/=10;          }          return alpha(a);                  //若大于10 则递归      }  }  int main()  {      long long int n;      scanf("%I64d",&n);      PRintf("%d",alpha(n));      return 0;  } 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表