С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ureman
2 / 2 / 0
Регистрация: 27.01.2010
Сообщений: 17
#1

Снова палиндромы с++ - C++

28.01.2010, 13:08. Просмотров 550. Ответов 2
Метки нет (Все метки)

итак есть условие задачи с++
"По N, M найти сумму тех чисел из[M,N], которые являются палиндромами. "
вот решение набросал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <cstdlib>
#include <iostream>
 
using namespace std;
bool Palindrom(int chislo)
{
        int k(0);
        int z(chislo);  
        //вычисление колличества цифр "k" в числе
             while(z > 0)
        {
               z /=10;
                k++;
        }
        int i(0), L;
        int mas[k]; //массив
 //заполнение массива остатками от деления числа на 10, 
 //пока остаток от деления >0       
        while(chislo > 0)
        {
                mas[i] = chislo%10;
                chislo /=10;
                i++;
        }
        L = i;
  //проверка       
        for(i = 0; i < L / 2; i++)
                if(mas[i] != mas[L - 1 - i])
                        break;
 
        return (i == L/2) ? true : false;
}
        
int main()
{
    int i,k(0),N,M,L(0);
    double sum(0);
    do
    {cout<<"input left < right"<<endl;
    cout << "Input left granica: ";
    cin >> N;
    cout << "Input right granica: "; 
    cin >> M;}
    while (N>M);
    //цикл вывода палиндрома, если из функции пришло true
    for(i = N; i <= M; i++)
                if(Palindrom(i))
                {
                        cout<<i<<'\t'; //вывод
                        sum+=i; //суммирование 
                        ++L; //кол-во +1
                        
                }
        cout<<endl; 
        cout<<"summa chisel-palindroms "<<sum<<endl;
        cout<<"kol-vo palindroms v intervale: "<<L<<endl;   
             system("pause");
                return 0;
}
теперь вопрос. программа считает и вроде даже правильно,
но в функции массив заполняется ерундой. Как сделать чтобы массив объявлялся под нужное количество цифр в исходном числе
может есть другой выход?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2010, 13:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Снова палиндромы с++ (C++):

Найти все числа-палиндромы, которые не больше 100, и их квадраты тоже палиндромы - C++
Натуральное число называется палиндромом, если его запись читается однинакого с начала и с конца (4884, 393, 1). Найти все числа-паиндромы,...

Найти числа от 1 до 99 - палиндромы, которые при возведении в квадрат также дают палиндромы (используя циклы) - C++
Задание: Натуральное число является палиндромом, если его запись читается одинаково с начала и с конца (как, например , 393, 1). Найти...

Как сделать чтобы таймер дойдя до 0 стартовал снова и снова? - C++
Здравствуйте :) Как сделать чтобы таймер дойдя до 0 стартовал снова и снова? TimerSec = 59; TimerMin = 6; for(int i = TimerSec;...

Палиндромы - C++
Здравствуйте! Помогите пожалуйста. Нужно написать программу которая выведет все слова палиндромы. Спасибо!

палиндромы (С++) - C++
дана целочисленная квадратная матрица порядка n. Найти номера строк, элементы которых образают симметричные последовательности (палиндромы)...

Палиндромы - C++
Каждая строка текста (до символа новой строки) является выражением. Найти все выражения палиндромы. Вывести их количество и эти выражения....

2
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
28.01.2010, 16:34 #2
Исп перевод числа в символы.Потом запускайте цикл один от начала другой от конца и сравнивайте.
0
ureman
2 / 2 / 0
Регистрация: 27.01.2010
Сообщений: 17
29.01.2010, 06:48  [ТС] #3
с переводом числа в строку,в принципе, все понятно.возможно так было бы проще, но это не по сути вопроса. меня то интересует как поправить существующую?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2010, 06:48
Привет! Вот еще темы с ответами:

Удалите палиндромы - C++
Удалите в целочисленном массиве все положительные числа, которые являются палиндромами.

Числа палиндромы - C++
Помогите написать программу в С++ которая проверяет является ли введенное число палиндромом.(число одинаково читающееся с 2х сторон,...

Слова-палиндромы - C++
Эта прога должна выводить все слова-палиндромы (которые читаются одинаково задом наперед так же, как и в нормальном вигляде) в рядке,...

слова-палиндромы - C++
Задание: В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов (текст вывести на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.