【C++】1877 - 数字接力

问题

奶牛们在玩一个数字游戏,它们从一个整数开始,比如:6593 。将这个整数中的各位数字全部取出,将他们相乘,得到一个新的整数。
上面的例子就是6×5×9×3=810 ,然后继续做下去, 8×1×0=0 得到了一个个位数 0 。
帮助奶牛完成这个游戏,读入一个数并计算出游戏得到一个个位数的过程。

在这里插入图片描述

1.分析问题

  1. 已知:一个整数
  2. 未知:得到一个个位数的过程
  3. 关系:拆位求解

2.定义变量

	//二、数据定义
	int n,temp;

3.输入数据

//三、数据输入 
	cin>>n;

4.数据计算

本题需要拆位得到每个数位上的数然后相乘得到一个新的数,所以首先想到短除法。
temp:实际上为n的值,用于短除法的迭代。
result:通过拆位运算后得到的新数。

temp=n;
int result=1;
while(temp>0){
    
    
			result*=temp%10;
			temp/=10;
		}

整个拆位环节持续到输入整数n变为个位数为止。

while(n>=10){
    
    
		//五、输出结果
		cout<<result<<" ";
		n=result;//条件迭代
	}

5.输出结果

#include<iostream>
using namespace std;
int main(){
    
    
	//一、分析问题
	//已知:一个整数
	//未知:得到一个个位数的过程
	//关系:拆位求解 

	//三、数据输入 
	cin>>n;
	//四、数据计算
	
	cout<<n<<" ";
	
	while(n>=10){
    
    
		temp=n;
		int result=1;
		while(temp>0){
    
    
			result*=temp%10;
			temp/=10;
		}
		//五、输出结果
		cout<<result<<" ";
		n=result;
	}
	

	 
	return 0;	
}

猜你喜欢

转载自blog.csdn.net/qq_39180358/article/details/135213561