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

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

30.05.2018, 03:00. Показов 9124. Ответов 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
13770 / 10963 / 6491
Регистрация: 18.12.2011
Сообщений: 29,240
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
13770 / 10963 / 6491
Регистрация: 18.12.2011
Сообщений: 29,240
30.05.2018, 13:21
Цитата Сообщение от Yetty Посмотреть сообщение
я что-то неправильно понял. 2х109
По моим понятиям - это 2109
0
1 / 1 / 1
Регистрация: 26.02.2018
Сообщений: 155
30.05.2018, 13:26  [ТС]
Видимо, х - это всё-таки умножить в данной задаче)
0
Модератор
Эксперт С++
 Аватар для zss
13770 / 10963 / 6491
Регистрация: 18.12.2011
Сообщений: 29,240
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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru