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 件のコメント:
コメントを投稿