我不知道为什么错了这个问题。我搜索谷歌,虽然我听不懂。谢谢你帮助:)。问题是=
1000 位数字中乘积最大的四个相邻数字是 9 × 9 × 8 × 9 = 5832。
73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 12540698747158523863050715693290963295227443043557 66896648950445244523161731856403098711121722383113 62229893423380308135336276614282806444486645238749 30358907296290491560440772390713810515859307960866 70172427121883998797908792274921901699720888093776 65727333001053367881220235421809751254540594752243 52584907711670556013604839586446706324415722155397 53697817977846174064955149290862569321978468622482 83972241375657056057490261407972968652414535100474 82166370484403199890008895243450658541227588666881 16427171479924442928230863465674813919123162824586 17866458359124566529476545682848912883142607690042 24219022671055626321111109370544217506941658960408 07198403850962455444362981230987879927244284909188 84580156166097919133875499200524063689912560717606 05886116467109405077541002256983155200055935729725 71636269561882670428252483600823257530420752963450
在 1000 位数字中查找具有最大乘积的 13 个相邻数字。这个产品的价值是什么?
public static void main(String[] args)
{
String str= "73167176531330624919225119674426574742355349194934"+
"96983520312774506326239578318016984801869478851843"+
"85861560789112949495459501737958331952853208805511"+
"12540698747158523863050715693290963295227443043557"+
"66896648950445244523161731856403098711121722383113"+
"62229893423380308135336276614282806444486645238749"+
"30358907296290491560440772390713810515859307960866"+
"70172427121883998797908792274921901699720888093776"+
"65727333001053367881220235421809751254540594752243"+
"52584907711670556013604839586446706324415722155397"+
"53697817977846174064955149290862569321978468622482"+
"83972241375657056057490261407972968652414535100474"+
"82166370484403199890008895243450658541227588666881"+
"16427171479924442928230863465674813919123162824586"+
"17866458359124566529476545682848912883142607690042"+
"24219022671055626321111109370544217506941658960408"+
"07198403850962455444362981230987879927244284909188"+
"84580156166097919133875499200524063689912560717606"+
"05886116467109405077541002256983155200055935729725"+
"71636269561882670428252483600823257530420752963450";
char chr[] = new char[str.length()];
chr=str.toCharArray();
long bignumber=0;
for (int i = 0; i < chr.length; i++)
{
if(i<=986)
{
if(chr[i+0]*chr[i+1]*chr[i+2]*chr[i+3]*chr[i+4]*chr[i+5]*chr[i+6]*chr[i+7]*chr[i+8]*chr[i+9]*chr[i+10]*chr[i+11]*chr[i+12]>bignumber)
{
bignumber=chr[i+0]*chr[i+1]*chr[i+2]*chr[i+3]*chr[i+4]*chr[i+5]*chr[i+6]*chr[i+7]*chr[i+8]*chr[i+9]*chr[i+10]*chr[i+11]*chr[i+12];
}
}
}
System.out.println(bignumber);
}
产品23514624000。
顺序5576689664895。 代码是 -
public class Test{
public static void main(String []args){
String str= "73167176531330624919225119674426574742355349194934"+
"96983520312774506326239578318016984801869478851843"+
"85861560789112949495459501737958331952853208805511"+
"12540698747158523863050715693290963295227443043557"+
"66896648950445244523161731856403098711121722383113"+
"62229893423380308135336276614282806444486645238749"+
"30358907296290491560440772390713810515859307960866"+
"70172427121883998797908792274921901699720888093776"+
"65727333001053367881220235421809751254540594752243"+
"52584907711670556013604839586446706324415722155397"+
"53697817977846174064955149290862569321978468622482"+
"83972241375657056057490261407972968652414535100474"+
"82166370484403199890008895243450658541227588666881"+
"16427171479924442928230863465674813919123162824586"+
"17866458359124566529476545682848912883142607690042"+
"24219022671055626321111109370544217506941658960408"+
"07198403850962455444362981230987879927244284909188"+
"84580156166097919133875499200524063689912560717606"+
"05886116467109405077541002256983155200055935729725"+
"71636269561882670428252483600823257530420752963450";
char chr[] = new char[str.length()];
chr=str.toCharArray();
long product = 0;
String digits = "";
for (int i = 0; i < chr.length - 13; i++)
{
long product1 = (long)Character.getNumericValue(chr[i+0])*Character.getNumericValue(chr[i+1])*Character.getNumericValue(chr[i+2])*Character.getNumericValue(chr[i+3])*Character.getNumericValue(chr[i+4])*Character.getNumericValue(chr[i+5])*Character.getNumericValue(chr[i+6])*Character.getNumericValue(chr[i+7])*Character.getNumericValue(chr[i+8])*Character.getNumericValue(chr[i+9])*Character.getNumericValue(chr[i+10])*Character.getNumericValue(chr[i+11])*Character.getNumericValue(chr[i+12]);
if(product < product1)
{
product = product1;
digits = ""+chr[i+0]+chr[i+1]+chr[i+2]+chr[i+3]+chr[i+4]+chr[i+5]+chr[i+6]+chr[i+7]+chr[i+8]+chr[i+9]+chr[i+10]+chr[i+11]+chr[i+12];
}
}
System.out.println(product);
System.out.println(digits);
}
}
您正在乘以字符的数值,而不是乘以数字。
将 chr[
i x] 替换为 Character.getNumericValue(chr[i x])。
除此之外,每 13 位数字执行两次乘法是浪费。执行一次乘法并将结果存储在变量中,以便您可以重复使用它。
更好的是,在每次迭代中,您可以获取上一次迭代的结果,除以上一次迭代的第一个数字,然后乘以当前迭代的最后一位数字。这将为您节省许多乘法。编辑 :实际上,此优化只有在数字中没有零的情况下才能工作,因此您可以忘记它。
问题 null
这个问题参考了欧拉项目问题5,所以要小心剧透!问题5: 2520是可以被1到10的每个数字除的最小数,没有任何余数。可以被1到20的所有数字整除的最小正数是多少? 我用Ruby编写了以下代码作为问题5的解决方案。 然而,每当我运行脚本时,它都会挂起。请注意,我在1到10范围内的基本情况2520上测试了相同的方法,效果很好。 为什么它适用于更简单的情况,但不适用于更高级的情况?我能做些什么来修复我所
pom。xml 我在Eclipse中使用Spring、jsp、servlet制作Web项目。但是Spring核心依赖会带来麻烦。 在xsi中:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" 错误消息很长。。。我不知道。。 无法从传输公用日志:公用日志:jar:1.
13195的主要因子为5、7、13和29。数字600851475143中最大的素因子是什么? 我用自己的方式在Euler项目上解决了这个问题,速度很慢,然后我在某人的github帐户上找到了这个解决方案。我不明白为什么它会起作用。为什么删除了许多因子,这些因子等于一个指数?有什么见解吗?
我不禁想到,有一个解决方案只涉及一个循环。有人有想法吗?我更喜欢只使用一个循环的答案,但任何比我目前的效率更高的都是很好的。
本文向大家介绍欧拉图,包括了欧拉图的使用技巧和注意事项,需要的朋友参考一下 欧拉图-如果存在包含图G的每个边的闭合轨迹,则连通图G称为欧拉图。 欧拉路径-欧拉路径是仅使用图形的每个边缘一次的路径。欧拉路径在不同的顶点处开始和结束。 欧拉电路-欧拉电路是只使用图形的每个边一次的电路。欧拉电路始终在相同的顶点处开始和结束。当且仅当G的所有顶点均具有偶数度时,连通图G是欧拉图,而当且仅当其边缘集可分解为
本文向大家介绍.欧拉公式相关面试题,主要包含被问及.欧拉公式时的应答技巧和注意事项,需要的朋友参考一下 参考回答:
表示 Euler 的类。 欧拉角描述一个旋转变换,通过指定轴顺序和其各个轴向上的指定旋转角度来旋转一个物体。 代码示例 const a = new THREE.Euler( 0, 1, 1.57, 'XYZ' ); const b = new THREE.Vector3( 1, 0, 1 ); b.applyEuler(a); 构造器(Constructor) Euler( x : Float,