牛客笔试-变换次数

题目地址

题目

牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。

变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成28 5=80.

问题是,要做多少次变换,使得这个数变成个位数。

输入描述:

输入一个正整数。小于等于2,000,000,000。

输出描述:

输出一个整数,表示变换次数。

示例1

输入

285

输出

2

题解

直接模拟题目中的运算即可,开启一个循环,不断计算当前数字的每个位数的和,将最终结果赋值回num

循环结束的标志是num为个位数

python

bash 复制代码
num = int(input("Enter a number: "))
count = 0

while num > 9:
    a = num % 10  
    while num // 10 > 0:
        num //= 10  
        a *= num % 10  
    count += 1
    num = a

print(count)

Java

bash 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        int count = 0;

        while (num > 9) {
            int a = num % 10; 
            while (num / 10 > 0) {
                num /= 10;
                a *= num % 10; 
            }
            count++;
            num = a;
        }
        System.out.println(count);
        scanner.close();
    }
}
相关推荐
我命由我123451 分钟前
Android 开发问题:CardView 的阴影效果会受到父容器的裁切
android·java·开发语言·java-ee·android studio·android-studio·android runtime
G等你下课4 分钟前
Leetcode491. 非递减子序列
算法
日月星辰Ace14 分钟前
Java 中使用 Jackson 泛型反序列化时,为什么返回类型变成了 Object?——JavaType vs TypeReference 全解析
java
Python技术极客21 分钟前
Python 玩转 Excel:四大神器横向评测与实战指南
python
API_technology25 分钟前
亚马逊 API 实战:商品详情页实时数据采集接口开发与调用
大数据·开发语言·python·数据挖掘
SimonKing26 分钟前
延迟消息的软肋,竟被定时任务完美弥补
java·后端·架构
天天摸鱼的java工程师27 分钟前
Spring Boot 3.0:开发效率直接起飞
java·后端
想躺平的咸鱼干34 分钟前
用idea进行数据同步
java·ide·后端·elasticsearch·中间件·intellij-idea
vhgcc40 分钟前
在 Java 中使用 Apache Tika 读取 doc、docx等格式文件内容
java·开发语言·自然语言处理·apache·ai编程
JavaEdge在掘金42 分钟前
别再裸写 parseFrom() 了!这才是 MQTT + Protobuf 消费的正确姿势!
python