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

Удалить из числа вхождение первой цифры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление символов из строки http://www.cyberforum.ru/cpp-beginners/thread788170.html
Условие: Даны натуральное число N, символы s1,...,sn. Удалить из данной последовательности все группы букв вида abcd. Я начинающий программист, вот что у меня получилось: #include <iostream>...
C++ Защита от дурака. Разбор кода всем здравствуйте. Прошу помощи. такова ситуация, есть код защиты от ввода букв и отбрасывания пробелов, но не могу разобраться, он не мой. помогите разобраться. float zashita() { char si;... http://www.cyberforum.ru/cpp-beginners/thread788164.html
Возврат значения С++ C++
Hi people! Вот такое задание: 1) Реализовать заданную динамическую структуру данных, с которой можно работать через перегруженные операции. 2) Для демонстрации работы программы необходимо...
Указателю на базовый класс присвоить адрес производного класса C++
class Point { public: Point(float a=0, float b=0) { x=a; y=b; } protected: float x; float y; };
C++ Текстовый файл/ Отредактировать текст, заменяя в нем повествовательные предложения восклицательными, а восклицательные – вопросительными http://www.cyberforum.ru/cpp-beginners/thread788144.html
Моя задача звучала следующим образом: " Дан текстовый файл. Отредактировать текст, заменяя в нем повествовательные предложения восклицательными, а восклицательные – вопросительными. По нажатию...
C++ Шаг в 0,5 Вычислить значение функции y={x}^{5}-\sqrt{x} При 0 \leq X \leq 5 c шагом в 0,5 Т.е. x 0 0.5 1 1.5 2 подробнее

Показать сообщение отдельно
villu
203 / 204 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
17.02.2013, 13:28
самое простое, что напрашивается это как-то так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
unsigned fix( unsigned d )
{
    unsigned res = 0;
    unsigned first = d;
    unsigned factor = 1;
 
    while( first > 10 ) {
        first /= 10;
        factor *= 10;
    }
    while( factor ) {
        unsigned next = (d / factor) % 10;
        if( next != first ) {
            res = res * 10 + next;
        }
        factor /=10;
    }
    return res;
}
Добавлено через 11 минут
второй способ - использовать то, что уже знаешь.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
unsigned fix2( unsigned d )
{
    unsigned res = 0;
    unsigned first = d;
 
    unsigned tmp[32];
    unsigned id = 0;
 
    while( first > 10 ) {
        tmp[id++] = first % 10;
        first /= 10;
    }
    for( ; id > 0; --id ) {
        if( tmp[id - 1] != first ) {
            res = res * 10 + tmp[id - 1];
        }
    }
    return res;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru