一个长方体,长宽高都是质数,已知长宽高之和为n【 n为[6,10000]范围内的自然数。 】,求这个长方体的体积最大值。 输入值:长宽高之和。 输出值:体积的最大可能值。-笔试面试资料

这是qklbishe.com第19953 篇笔试面试资料
提供答案分析,通过本文《一个长方体,长宽高都是质数,已知长宽高之和为n【 n为[6,10000]范围内的自然数。 】,求这个长方体的体积最大值。
输入值:长宽高之和。 输出值:体积的最大可能值。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
一个长方体,长宽高都是质数,已知长宽高之和为n【n为[6,10000]范围内的自然数。】,求这个长方体的体积最大值。

输入值:长宽高之和。

输出值:体积的最大可能值。

一个长方体,长宽高都是质数,已知长宽高之和为n【 n为[6,10000]范围内的自然数。 】,求这个长方体的体积最大值。      输入值:长宽高之和。  输出值:体积的最大可能值。 零葬

穷举

求n以内的质数,然后枚举所有的三元组(a,b,c),当a+b+c=n时更新最大体积。本题的加速可以从两方面入手:(1)枚举三元组时的剪枝;(2)用数学方法判断质数。
import java.util.*;   public class Solution {     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *      * 得到体积的最大可能值      * @param n long长整型 长方形的长宽高之和。长宽高都为质数。      * @return long长整型      */     public long getMaxVolume (long n) {         ArrayList<Long> primeTable = new ArrayList<>();         // 先求n以内的质数         for(long num = 2L; num < n; num++){             if(isPrime(num)){                 primeTable.add(num);             }         }         int size = primeTable.size();         long maxVolume = 0;         for(int i = 0; i < size; i++){             for(int j = i; j < size; j++){                 for(int k = j; k < size; k++){                     if(primeTable.get(i) + primeTable.get(j) + primeTable.get(k) == n){                         maxVolume = Math.max(maxVolume, primeTable.get(i) * primeTable.get(j) * primeTable.get(k));                     }                 }                 if(i + j >= n){                     break;                 }             }             if(i >= n){                 break;             }         }         return maxVolume;     }          private boolean isPrime(long num){         // 两个较小数另外处理         if(num == 2 || num == 3){             return true;         }         // 不在6的倍数两侧的一定不是质数         if(num % 6 != 1 && num % 6 != 5){             return false;         }         long temp = (long)Math.sqrt(num);         // 在6的倍数两侧的也可能不是质数         for(long i = 5; i <= temp; i += 6){             if(num % i == 0 || num % (i + 2) == 0){                 return false;             }         }         // 排除所有,剩余的是质数         return true;     } }

2022-01-09 17:45:49 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 一个长方体,长宽高都是质数,已知长宽高之和为n【 n为[6,10000]范围内的自然数。 】,求这个长方体的体积最大值。 输入值:长宽高之和。 输出值:体积的最大可能值。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情