Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Палиндромы


Автор: Nika77 23.4.2015, 10:55
Добрый день!  Помогите пожалуйста написать программу которая выводит все 6ти значные палиандомы.
Учусь на дистанционном, мне все по С++ дается с трудом.

Код
#include <iostream>
 
using namespace std;
 
bool isPalindrome( int val ) {
   int tmp1 = 0,
       tmp2 = val;
 
   while ( val ) {
      tmp1 = tmp1 * 10 + val % 10;
      val /= 10;
   }
   
   return ( tmp1 == tmp2 );
}
 
 
int main ()
 
{
    
 
for (int i=100000;i<1000000;i++)
 
{
if (isPalindrome(i))
{               
cout<<i<<endl;
}
 
}
    system ("pause");
    return 0;
}


Модератор: не забываем пользоваться кнопочкой "Код"

Автор: bsa 23.4.2015, 10:57
Nika77, не "палиандомы", а "палиндромы". Поищи на форуме. Было много раз уже.

Автор: konshyn 23.4.2015, 12:21
Код

#include <cstdio>

int main() {
    for (int i = 0; i < 1000; i++) {
        printf("%d) %d%d%d%.3d\n", i, i % 10, i % 100 / 10, i / 100, i);
    }
    return 0;
}

Автор: baldina 23.4.2015, 14:12
konshyn, красиво, не не все из них шестизначные

Автор: feodorv 23.4.2015, 15:35
Цитата(baldina @  23.4.2015,  14:12 Найти цитируемый пост)
не не все из них шестизначные 

Даже если первые цифры - нули, то ведь все равно 6-значные, не?
Переделать цикл под
Код

    for (int i = 100; i < 1000; i++)

не так сложно...

Автор: baldina 23.4.2015, 15:47
Цитата(feodorv @  23.4.2015,  15:35 Найти цитируемый пост)
если первые цифры - нули, то ведь все равно 6-значные

у чисел обычно ведущие (не значащие) нули не пишут, поэтому значность такого кода не совпадает со значностью числа

Цитата(feodorv @  23.4.2015,  15:35 Найти цитируемый пост)
Переделать цикл под

не поможет. надо исключить все i кратные 10

Добавлено @ 15:57
типа
Код

#include <cstdio>
int main() {
    for (int i = 100, j=0; i < 1000; i++) {
        printf("%d) %d%d%d%d\n", ++j, i,  i%10, (i/10)%10, i/100);
    }
    return 0;
}

Автор: feodorv 23.4.2015, 16:09
Цитата(baldina @  23.4.2015,  15:47 Найти цитируемый пост)
у чисел обычно ведущие (не значащие) нули не пишут

На номерах билетов пишут  smile 


Цитата(baldina @  23.4.2015,  15:47 Найти цитируемый пост)
не поможет. надо исключить все i кратные 10

Не, я имел в виду:
Код

    for (int i = 100; i < 1000; i++) {
        printf("%d) %.3d%d%d%d\n", i-99, i, i % 10, i % 100 / 10, i / 100);
    }

Автор: baldina 23.4.2015, 17:25
номера билетов как раз код, а не числа)) впрочем, это уже флейм

Цитата(feodorv @  23.4.2015,  16:09 Найти цитируемый пост)
я имел в виду

ага, так

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)