当前位置: 代码迷 >> 综合 >> 欧拉计划004--Largest palindrome product
  详细解决方案

欧拉计划004--Largest palindrome product

热度:37   发布时间:2023-11-25 21:02:47.0

结果:906609,简单的暴力就可以解决,注意判断产生的回文数是否为最大即可。

#include<iostream>
using namespace std;
int main()
{int i,j;int ans=0;for(i=999;i>=100;i--){for(j=999;j>=100;j--){long long temp = i*j;int sw = temp/100000;int w = temp/10000%10;int q = temp/1000%10;int b = temp/100%10;int s = temp/10%10;int g = temp%10;if(sw==g&&w==s&&q==b){if(temp>ans){ans = temp;}	}}}cout<<ans<<endl;return 0;
}

更新下做法,光暴力真的是什么用都没有的,最后都没什么收获

#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;int is_valid(int x, int base) {int raw = x,temp = 0;while (x) {//翻转的是base进制下的数字表示temp = temp * base + x % base;  x /= base;}return temp == raw;
}int main() {int ans = -1;for(int i = 100; i < 1000; i++) {for(int j = i; j < 1000; j++ ){if (is_valid(i * j, 10) && i * j > ans ){ans = i*j;}}}cout<<ans<<endl;return 0;
}

 

  相关解决方案