我正在处理一个面试问题,我被问到这个问题,我应该编写一个程序,从两个三位数字的产品中找到最大的回文.
这是个问题
我想出了这种从底部开始的蛮力方法.
public class LargestPalindromeQuestion {
public static void main(String[] args) {
int value = 0;
for (int i = 100; i <= 999; i++) {
for (int j = i; j <= 999; j++) {
int value1 = i * j;
if (isPalindrome(value1) && value < value1) {
value = value1;
}
}
}
System.out.println(value);
}
private static boolean isPalindrome(final int product) {
int p = product;
int reverse = 0;
while (p != 0) {
reverse …Run Code Online (Sandbox Code Playgroud) 我已经为 Project Euler 上的问题 4 创建了一个解决方案。但是,我发现将打印语句(打印答案)放在不同位置会打印不同的答案。不知什么原因,结果的最高值是580085。不应该是906609吗?我的 isPalindrome() 方法有问题吗?
#include <stdio.h>
#include <stdbool.h>
int isPalindrome(int n);
//Find the largest palindrome made from the product of two 3-digit numbers.
int main(void)
{
int i = 0;
int j = 0;
int result = 0;
int palindrome = 0;
int max = 0;
//Each iteration of i will be multiplied from j:10-99
for(i = 100; i <= 999; i++)
{
for(j = 100; j <= 999; j++)
{
result = i * j; …Run Code Online (Sandbox Code Playgroud)