我的任务是写一个函数,检查一个数字是否是回文,然后检查该函数是否与回文数和非回文数一起工作。我的下一个任务是找到最大的回文数,它是两个三位数字的乘积和构成它的两个数字。为此,指令要求我使用两个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
谢谢!
答案 0 :(得分:2)
你得到了正确的答案。提示:你的功能是找到两对值:
试试这个:
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")
}
}
}