Число называется полиндромным если оно читается одинокого в двух сторон. Самый большой полиндром которое получается от произвидение 2 2-значних чисел 9009 = 91 99.
Найти самый большой полиндром которое получается от произвидение 2 3-значних чисел.
Решение по C++
#include <iostream>
#include <math.h>
bool is_palindrome(int);
int digit_number(int);
void get_digit_array(int, int[]);
int main()
{
int max_palidrome = 0;
for (int i=0; i<=999; i++)
{
for (int j=100; j<=999; j++)
{
if (is_palindrome(i*j))
{
if (i*j > max_palidrome)
max_palidrome = i * j;
}
}
}
std::cout << "Max Palidrome = " << max_palidrome << std::endl;
return 0;
}
bool is_palindrome(int n)
{
int dn = digit_number(n);
int a[dn];
get_digit_array(n, a);
for (int i=0; i<dn; i++)
{
if (a[i] != a[dn-i-1])
return false;
}
return true;
}
int digit_number(int n)
{
int t = 1;
while(1)
{
int p = pow(10, t);
if (n % p == n)
return t;
t++;
}
return 0;
}
void get_digit_array(int n, int a[])
{
int k = digit_number(n);
int l = 0;
for (int i=k-1; i>=0; i--)
{
int t = n / pow(10, i);
a[l] = t%10;
l++;
}
}
Результат
Max Palidrome = 906609
Найти самый большой полиндром которое получается от произвидение 2 3-значних чисел.
Решение по C++
#include <iostream>
#include <math.h>
bool is_palindrome(int);
int digit_number(int);
void get_digit_array(int, int[]);
int main()
{
int max_palidrome = 0;
for (int i=0; i<=999; i++)
{
for (int j=100; j<=999; j++)
{
if (is_palindrome(i*j))
{
if (i*j > max_palidrome)
max_palidrome = i * j;
}
}
}
std::cout << "Max Palidrome = " << max_palidrome << std::endl;
return 0;
}
bool is_palindrome(int n)
{
int dn = digit_number(n);
int a[dn];
get_digit_array(n, a);
for (int i=0; i<dn; i++)
{
if (a[i] != a[dn-i-1])
return false;
}
return true;
}
int digit_number(int n)
{
int t = 1;
while(1)
{
int p = pow(10, t);
if (n % p == n)
return t;
t++;
}
return 0;
}
void get_digit_array(int n, int a[])
{
int k = digit_number(n);
int l = 0;
for (int i=k-1; i>=0; i--)
{
int t = n / pow(10, i);
a[l] = t%10;
l++;
}
}
Результат
Max Palidrome = 906609
Комментариев нет:
Отправить комментарий