vivo2020届春季校园招聘在线编程考试_现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 ... ...)之乘积等于n,若不存在则输出 -1。

这是一道关于编程题目的博客,主要内容是解决寻找最小正整数m的问题,其中m的各位数字乘积等于给定的正整数n。当不存在这样的m时,输出-1。解题思路涉及递归,从9开始尝试每个数字作为m的组成部分,检查它们能否整除n,并通过递归计算得到结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。

在这里插入图片描述

思路

即 i = 9…0, 依次看能不能被n整除,能的话,结果中的数就应该包含该数,又因为结果是因子相乘,所以要将每个因子相乘。

    // n 除 i = 9...1, 若到某个i余数为0,则i为其中一个因子,直到剩下最后一个小于等于9的因子,递归结束
    // 若i = 9...1都除不尽,则返回因子为-1 递归结束。
    // 若结果大于0,则返回递归结果res,否则返回-1;
    // 当 n = 22时,递归结果res = -8, 返回-1
public class vivo_36_49_100_455 {
   

    public static 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值