Форум программистов, компьютерный форум CyberForum.ru

Число с записью цифр в обратном порядке - C++

Восстановить пароль Регистрация
 
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
06.11.2012, 21:06     Число с записью цифр в обратном порядке #1
Нужна функция которая, получив целое число, формирует новое, в котором запись цифр организована в обратном порядке. Например, функция получает число 234080, а возвращает 080432.
Сделал кое-что сам, но результат оставляет желать лучшего. Используется два цикла, первый для подсчета количества цифр. Для чисел, не содержащих нули он работает, в противном случае результат неверный.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <math.h>
int fun(int ch)
{
int kol=0,nch=0,a,k=ch;
float st=10;
while(k)
{
    k=k/10;
    kol++;
}
while(ch)
{
    a=ch%10;
    kol=kol-1;
    nch=nch+a*pow(st,kol);
    ch=ch/10;
}
return nch;
}
Добавлено через 1 час 9 минут
Сделал сам! Уже не актуально.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 21:06     Число с записью цифр в обратном порядке
Посмотрите здесь:

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке C++
C++ Определить число, полученное выписыванием в обратном порядке цифр заданного целого трехзначного числа.
C++ найти число, которое получено из N перестановкой его цифр в обратном порядке
C++ Определить число, полученнное вписыванием в обратном порядке цифр заданного целого числа n.
C++ Функция invert, которая возвращает число,полученное записью всех цифр некоторого натурального N в обратном порядке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
11.04.2013, 15:01     Число с записью цифр в обратном порядке #2
а можешь скинуть,как исправил?)
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
13.04.2013, 01:56     Число с записью цифр в обратном порядке #3
ebywku,
В принципе корявый алгоритм,на форуме нашел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_CTYPE,"Russian");
        int a;
    int buf[6];
    cout << "Введите число ";
    cin >> a;
    for(int i = 0; i < 6; i++)
    {
        buf[i] = a%10;
        a = a/10;
    }
    cout <<"Новое число = "<< buf[0] << buf[1] << buf[2]<< buf[3] << buf[4] << buf[5] << endl;
    system("pause");
    return 0;
}
Ссылка
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
13.04.2013, 13:01  [ТС]     Число с записью цифр в обратном порядке #4
ebywku,

Файл main.cpp

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
#include <iostream>
using namespace std;
long fun(long ch);
long main()
{
setlocale (LC_ALL, "Russian");
long ch,obrch;
int kol=0,out;
while(true)
    {
    cout<<"Введите число: ";
    cin>>ch;
    obrch=fun(ch);
    if (obrch==ch)
        {
        cout<<"Ваше число: "<<ch<<" является палиндромом!"<<endl<<endl;
        kol++;
        cout<<"Количество подсчитанных палиндромов: "<<kol<<endl<<endl;
        }
    else
        {
        cout<<"Ваше число: "<<ch<<" не является палиндромом! Обратная запись числа: "<<obrch<<endl<<endl;
        cout<<"Количество подсчитанных палиндромов: "<<kol<<endl<<endl;
        }
    cout<<"Для выхода введите 0, чтобы продолжить ввод введите любую другую цифру: ";
    cin>>out;
    cout<<endl<<endl;
        if (out==0)
        exit(0);
    }
}

Файл fun.cpp


C++
1
2
3
4
5
6
7
8
9
10
11
#include <math.h>
long fun(long ch)
{
long nch = 0;
while(ch)
    {
    nch = 10*nch + ch%10;
    ch=ch/10;
    }
return nch;
}
Yandex
Объявления
13.04.2013, 13:01     Число с записью цифр в обратном порядке
Ответ Создать тему
Опции темы

Текущее время: 05:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru