Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/47: Рейтинг темы: голосов - 47, средняя оценка - 4.74
1 / 1 / 1
Регистрация: 26.02.2018
Сообщений: 155

Описать процедуру DigitCount(K, C), находящую количество цифр целого положительного числа

30.05.2018, 03:00. Показов 9172. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Описать процедуру DigitCount(K,C), находящую C — количество цифр целого положительного числа K (K — входной, C — выходной параметры целого типа). С помощью этой процедуры найти и напечатать количество цифр для каждого из пяти данных чисел.

Формат входных данных
На вход программе подается 5 натуральных чисел, каждое из которых записано в отдельной строке. Числа не превосходят 2×109 и не содержат ведущих нулей.
Формат выходных данных
Требуется вывести 5 чисел — для каждого числа количество его цифр.
Примеры
вход:
12
234
456
4
12333
выход:
2
3
3
1
5
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2018, 03:00
Ответы с готовыми решениями:

Описать процедуру, находящую количество C цифр целого положительного числа K, а также их сумму
Описать процедуру DigitCountSum(K, C, S), находящую количество C цифр целого положительного числа K, а также их сумму S (K — входной, C и S...

Описать функцию DigitCountSum(K), находящую количество C цифр целого положительного числа K, а также их сумму
Описать функцию DigitCountSum(K), находящую количество C цифр целого положительного числа K, а также их сумму S (K — входной, C и S —...

Описать процедуру AddRightDigit (D , К), добавляет к целого положительного числа К дело цифру D
Описать процедуру AddRightDigit (D , К), добавляет к целого положительного числа К дело цифру D ( D - входной параметр целого типа ,...

10
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.05.2018, 04:23
Лучший ответ Сообщение было отмечено Kalighost как решение

Решение

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 <ctime>
using namespace std;
 
void DigitCount (int K, int& C)
{ 
    C=1;
    while ((K/=10)>0) C++;
    cout <<C<<"\n";
}    
 
int main()
{
    
    const int n = 5;
    int a[n], C=0;
    cout <<"INPUT:\n";
    for (int i=0; i<5; i++)
    cin >>a[i];
    
    cout <<"OUTPUT:\n";
    for (int i=0; i<5; i++)    
    DigitCount (a[i], C);   
    
system("pause");
return 0;
}
1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
30.05.2018, 06:48
Yetty,
Цитата Сообщение от Kalighost Посмотреть сообщение
Числа не превосходят 2×109
int не хватит (они 32 разрядные)
и long long тоже (64 разрядные)
Нужна 128 разрядная арифметика.

А вообще, для данного случая подойдет и их строковое представление
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
#include <iostream>
#include <cstring>
using namespace std;
 
void DigitCount (char* K, int& C)
{ 
    C=strlen(K);
}    
 
int main()
{
 
    const int n = 5;
    char a[n][40];
    cout <<"INPUT:\n";
    for (int i=0; i<n; i++)
        cin >>a[i];
 
    cout <<"OUTPUT:\n";
    for (int i=0; i<5; i++)
    {
        int res;
        DigitCount (a[i], res);   
        cout <<res<<"\n";
    }
 
    system("pause");
    return 0;
}
А если через string, то так:
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
#include <iostream>
#include <string>
using namespace std;
 
void DigitCount (string K, int& C)
{ 
    C=K.size();
}    
 
int main()
{
 
    const int n = 5;
    string a[n];
    cout <<"INPUT:\n";
    for (int i=0; i<n; i++)
        cin >>a[i];
 
    cout <<"OUTPUT:\n";
    for (int i=0; i<5; i++)
    {
        int res;
        DigitCount (a[i], res);   
        cout <<res<<"\n";
    }
 
    system("pause");
    return 0;
}
Можно выпендриться и объявить свой собственный тип целых чисел
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>
#include <string>
using namespace std;
 
typedef string MyBigInt;
 
void DigitCount (MyBigInt K, int& C)
{ 
    C=K.size();
}    
 
int main()
{
 
    const int n = 5;
    MyBigInt a[n];
    cout <<"INPUT:\n";
    for (int i=0; i<n; i++)
        cin >>a[i];
 
    cout <<"OUTPUT:\n";
    for (int i=0; i<5; i++)
    {
        int res;
        DigitCount (a[i], res);   
        cout <<res<<"\n";
    }
 
    system("pause");
    return 0;
}
Строку
typedef string MyBigInt;
можно записать в какой-нибудь заголовочный файл,
тогда вообще будет полная иллюзия работы с числами, а не со строкой
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.05.2018, 12:17
Цитата Сообщение от zss Посмотреть сообщение
int не хватит (они 32 разрядные)
значит я что-то неправильно понял. 2х109 это что за число ?
0
1 / 1 / 1
Регистрация: 26.02.2018
Сообщений: 155
30.05.2018, 13:11  [ТС]
Ваш первый код и так прекрасно работает, система приняла его! Спасибо Вам!
1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
30.05.2018, 13:21
Цитата Сообщение от Yetty Посмотреть сообщение
я что-то неправильно понял. 2х109
По моим понятиям - это 2109
0
1 / 1 / 1
Регистрация: 26.02.2018
Сообщений: 155
30.05.2018, 13:26  [ТС]
Видимо, х - это всё-таки умножить в данной задаче)
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
30.05.2018, 13:31
Цитата Сообщение от Kalighost Посмотреть сообщение
х - это всё-таки умножить
Тогда это нонсенс - зачем ограничивать числа таким маленьким значением, да еще в такой странной записи
(не 218, а 2х109).
0
1 / 1 / 1
Регистрация: 26.02.2018
Сообщений: 155
30.05.2018, 13:32  [ТС]
Вот я и не понимаю!
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.05.2018, 13:46
Цитата Сообщение от Kalighost Посмотреть сообщение
Видимо, х - это всё-таки умножить в данной задаче)
так то так, но 3 из 5 чисел примера превышают 2x109. с другой стороны числа примера не дотягивают до больших.
в любом случае варианты zss не помешают. уточняйте условие что это за 2x105 - возможно есть и третий вариант трактовки
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
08.07.2018, 15:27
Цитата Сообщение от Yetty Посмотреть сообщение
значит я что-то неправильно понял. 2х109 это что за число ?
Это просто 2x10^9 (при копировании условия символ '^' потерялся), а задача с сайта Дистанционная подготовка. Поэтому, система и приняла его.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2018, 15:27
Помогаю со студенческими работами здесь

Определить количество цифр целого положительного числа
Описать процедуру DigitCount(K,C), находящую C — количество цифр целого положительного числа K (K — входной, C — выходной параметры целого...

Описать функцию DigitCount(K) целого типа, находящую количество цифр целого положительного числа K
Описать функцию DigitCount(K) целого типа, находящую количество цифр целого положительного числа K. Используя эту функцию, найти...

Описать функции DigitCount (k) целого типа, находящую количество цифр целого положительного числа К
Описать функции DigitCount(k) целого типа, находящую количество цифр целого положительного числа К. Используя эту функцию, найти количество...

Описать функцию DigitCount(K) целого типа, находящую количество цифр целого положительного числа K
Здравствуйте! Проверьте пожалуйста решение задачи. (функции) Описать функцию DigitCount(K) целого типа, находящую количество цифр цело-го...

Описать функцию DigitCount (K) целого типа, находящую количество цифр целого положительного числа K
Описать функцию DigitCount (K) целого типа, находящую количество цифр целого положительного числа K. Используя эту функцию, найти...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru