将计算值存储到数组中

问题描述:

我正在尝试一些在线问题。我编程了如何解决2个两位数字的最大回文产品。例如91 * 99 = 9009。我设法通过使用递归函数来做到这一点,但我不知道如何使用这样的数组来做到这一点?将计算值存储到数组中

product[0]=9; 
product[1]=0; 
product[2]=0; 
product[3]=9; 

或者计算出的产品是否为969;

product[0]=9; 
product[1]=6; 
product[2]=9; 

然后我会输出它从最后一个索引开始到第一个索引,然后测试它是否等于原始数字。

编辑: 我的问题是,我如何将计算的产品存储到数组?

+0

你也应该编辑问题的名称。 – 2012-08-10 06:06:57

+0

目前尚不清楚为什么你认为使用数组会有所帮助。您可以在不使用数组的情况下制作迭代解决方案。提示:'String.charAt'。 – 2012-08-10 06:09:30

+0

如果它是一个回文,那么只需在'List li = new ArrayList (); while(product> 0){li.add(product%10); product/= 10;}'并测试'li'列表是否是回文数组。 – 2012-08-10 06:09:31

没有理由使用数组来解决Project Euler问题。但是如果你注意到它,那么有一个简单的算法来将数组数组转换为数字。只是这样做:

int number = 0; 
int number_2 = 0; 

//going forwards: 
for (int i = 0; i < array.length; i++) 
{ 
    number = number * 10 + array[i]; 
} 

//going backwards: 
for (int i = array.length - 1; i >= 0; i--) 
{ 
    number_2 = number_2 * 10 + array[i]; 
} 

if (number == number_2) 
{ 
    //you have a palindrome 
} 

这不是最有效的方法,我知道(@ Nandkumar的速度更快),但它真的很简单,那就是我的目标了。

我不会写你的代码,因为它看起来像一个任务,但我会给你一个提示。

首先将int转换为字符串。

字符串中的字符与数组非常相似,因此将字符串转换为数组很容易。

从整数产品中创建一个新的String

+0

我删除了投票,投票的原因刚转换成'String'也不会回答他的'modified'问题。 '编辑:我的问题是,我如何将计算的产品存储到数组中?' – SiB 2012-08-10 06:29:07

+0

字符串有char数组,所以您只需要从String类请求表示。我试图不解决这个作业,像OP的问题。 – dcow 2012-08-10 06:33:37

将数字转换到一个数组,你可以试试这个...

Char [] product = String.valueOf("969").toCharArray(); 
+1

OP不询问如何检查数组是否是回文。 – dcow 2012-08-10 06:12:03

+2

然后删除答案,因为它与问题不再相关。不回答这个问题是downvote的完全有效的理由。 – dcow 2012-08-10 06:14:25

+0

你如何建议OP从两个整数变量的乘积中获得字符串字符串“939”? – dcow 2012-08-10 06:16:55

提供你的产品String.valueOf(int),它会转换为字符串,然后使用String.toCharArray()它转换成数组一样

boolean palindrome = true; 
int product = 9009; // or any calculated number 
char str[] = String.valueOf(product).toCharArray(); 

for(int i=0,j=str.length-1; i!=j ;i++,j--) { 
    if(str[i] == str[j]){ 
     continue; 
    } else { 
     palindrome = false; 
     break; 
    } 
} 
+0

ohh。我懂了。我缺少.toCharArray()。我刚开始学习像2周前的Java,我仍然想知道你们如何设法找出正确的代码。谢谢! – WannaCSharp 2012-08-10 06:27:12

+0

没关系我读错了 – dcow 2012-08-10 06:28:41

+0

@DavidCowden:我和j本地循环,并在循环的范围内,所以你会如何得出结论产品是回文或不是? – 2012-08-10 06:30:52