最大的回文是两个三位数字与 R 的乘积

  • 本文关键字:数字 三位 两个 回文 r
  • 更新时间 :
  • 英文 :


我的任务是编写一个函数来检查一个数字是否是回文,然后检查该函数是否适用于回文数和非回文数。我的下一个任务是找到最大的回文数,它是两个三位数字和构成它的两个数字的乘积。为此,指令要求我使用两个 for 循环,一个嵌套在另一个循环中。我使用这个网站上的一些JavaScript示例成功完成了大部分任务,并且能够使用两个三位数字输出最大的回文。但是,我无法弄清楚如何输出两个数字,当它们相乘时,得到这个回文。有人可以指出我正确的方向吗?

isPalindrome <- function(x) {
return(x == paste(rev(unlist(strsplit(as.character(x), split = ''))), collapse = ''))
}
isPalindrome(11223344332211)
[1] TRUE
isPalindrome(34631111113185)
[1] FALSE
max <- 100001
for(x in 999:100) {
for(y in 999:x) {
product <- x * y
if(max < product && (isPalindrome(product) == TRUE)) {
max <- product
}
}
}
cat(max)
906609

根据我的阅读,我知道这两个数字是 993 和 913,但无法弄清楚如何输出它们。例如,当我键入以下内容时,我看到两个答案,但得到 924 和 962 作为输出的一部分。

max <- 100001
for(x in 999:100) {
for(y in 999:x) {
product <- x * y
if(max < product && (isPalindrome(product) == TRUE)) {
max <- product
cat(x, y)
}
}
}
924 962913 993> cat(max)
906609

谢谢!

你得到的是正确答案。 提示:你的函数正在找到两对值:

试试这个:

max <- 100001
for(x in 999:100) {
for(y in 999:x) {
product <- x * y
if(max < product && (isPalindrome(product) == TRUE)) {
max <- product
cat(x, y, "n")
}
}
}

相关内容

最新更新