Scheme
(use srfi-1) (use srfi-42) (use numbers) (define (number->list n) (define (body n) (if (zero? n) '() (cons (modulo n 10) (body (floor (/ n 10)))))) (if (zero? n) '(0) (reverse (body n)))) (define (palindrome? n) (let ((ls (number->list n))) (equal? ls (reverse ls)))) (define (p004) (print (max-ec (: i 100 1000) (: j i 1000) (:let n (* i j)) (if (palindrome? n)) n))) (p004)
C++
#include <cstdio>
#include <algorithm>
using namespace std;
bool is_palindrome(int n)
{
int rev = 0, buf = n;
do {
rev = 10*rev + buf%10;
buf /= 10;
} while(buf != 0);
return rev == n;
}
int main()
{
int ma = 0;
for (int i = 100; i < 1000; i++) {
for (int j = i; j < 1000; j++) {
int t = i*j;
if (is_palindrome(t))
ma = max(ma, t);
}
}
printf("%d\n", ma);
return 0;
}
0 件のコメント:
コメントを投稿