练习三 控制结构(强化)编程题13. 数字游戏

【问题描述】

从一个整数开始,比如:6593。将这个整数中的各位数字全部取出,如果为0,则忽略,将他们相乘,
得到一个新的整数,上面的例子就是6*5*9*3=810,然后继续做下去,8*1得到了一个个位数8。
读入一个数并计算出得到一个个位数的过程。

【输入形式】

一个整数n
【输出形式】

在单独的一行中按顺序输出游戏过程中产生的每一个数直到一个个位数结束。

【样例输入】

98886

【样例输出】

98886 27648 2688 768 336 54 20 2
#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	cout<<n<<" ";           //为了凑输出样例
	while(n>=10){
		int product=1;
		while(n>0){
			int digit=n%10;     //把每一位数字取出来去相乘
			if(digit!=0){
				product = product*digit;
			}
			n/=10;              //n每次除10,如果等于0了就退出循环输出product乘积
		}
		cout<<product<<" ";
		n=product;              //将成绩赋给下一个n
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值