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

Дано натуральное число .Если число содержит 5 цифр - C++

Восстановить пароль Регистрация
 
sbobuks
1 / 1 / 0
Регистрация: 20.05.2013
Сообщений: 72
22.05.2013, 21:33     Дано натуральное число .Если число содержит 5 цифр #1
Дано натуральное число N.Если число содержит 5 цифр,то
получить новое число М,которое образуется путем исключения
средней цифры исходного числа.Если количество цифр не 5,то
M=N Пример.N=12345, М=1245.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 21:33     Дано натуральное число .Если число содержит 5 цифр
Посмотрите здесь:

C++ Натуральное число, в котором n цифр, если сумма цифр возведённая в nую степень равна числу то вы вывесте число на экран(интервал чисел от 1 до k)
C++ Дано натуральное число. Найти число, получаемое удалением из исходного всех цифр a
Дано натуральное число N (N <= 100). Построить натуральное число, состоящее из N цифр и содержащее только цифры 1 и 2, которое делится на 2N C++
C++ Дано двузначное натуральное число. Получить другое натуральное число, в котором порядок цифр изменен на противоположный
C++ Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
22.05.2013, 22:25     Дано натуральное число .Если число содержит 5 цифр #2
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    unsigned int val;
    cin >> val;
    if (!val) return -1;
 
    int dig_count = ceil( log10(val) );
 
    if (!dig_count % 2 || dig_count == 1) {
        cout << "M = " << val;
        return 0;
    }
    unsigned int new_val = 0, except = dig_count / 2;
 
    for (size_t i = 0; i != except; i++, val /= 10)
        new_val += (val % 10) * pow(10, i);
    val /= 10;
    for (size_t i = except; i != dig_count - 1; i++, val /= 10)
        new_val += (val % 10) * pow(10, i);
 
    cout << "M = " << new_val;
    return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,158
Завершенные тесты: 1
22.05.2013, 22:33     Дано натуральное число .Если число содержит 5 цифр #3
Цитата Сообщение от Olivеr Посмотреть сообщение
pow(10, i);
У Вас вся арифметика целочисленная, а в целую степень Вы возводите
через e в степени i деленное на e в степени логарифм 10. Как-то не кошерно.....
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
22.05.2013, 22:48     Дано натуральное число .Если число содержит 5 цифр #4
какой ужас
вот без возведения в степень каждый раз:
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    unsigned int val;
    cin >> val;
    if (!val) return -1;
 
    int dig_count = ceil( log10(val) );
 
    if (!dig_count % 2 || dig_count == 1) {
        cout << "M = " << val;
        return 0;
    }
    unsigned int new_val = 0, except = dig_count / 2, rank = 1;
 
    for (size_t i = 0; i != dig_count; i++, val /= 10)
        if (i != except) {
                new_val += (val % 10) * rank;
                rank *= 10;
        }
    cout << "M = " << new_val;
    return 0;
}
И, кто не понял, ceil( log10(val) ) считает количество цифр в числе.
sbobuks
1 / 1 / 0
Регистрация: 20.05.2013
Сообщений: 72
22.05.2013, 22:51  [ТС]     Дано натуральное число .Если число содержит 5 цифр #5
Спасибо всем огромное))
Yandex
Объявления
22.05.2013, 22:51     Дано натуральное число .Если число содержит 5 цифр
Ответ Создать тему
Опции темы

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