0 / 0 / 0 Регистрация: 12.02.2013 Сообщений: 45 |
|
1 |
|
Количество цифр в последовательности11.03.2013, 21:49. Показов 5289. Ответов 14
В общем вот задачка: Надо написать код программы, а я даже понять не могу что от меня хотят
0 |
127 / 125 / 16 Регистрация: 03.07.2011 Сообщений: 354 |
|
11.03.2013, 22:29 |
2 |
считываете целое число x(например), далее считываете x символов. Считаете сколько из этих символов являются цифрами.
0 |
0 / 0 / 0 Регистрация: 12.02.2013 Сообщений: 45 |
|
11.03.2013, 22:37 [ТС] |
3 |
считываете целое число x(например). а можно по подробнее или пример какой-нибудь?
0 |
Venzo 127 / 125 / 16 Регистрация: 03.07.2011 Сообщений: 354 |
||||
11.03.2013, 22:43 |
4 |
|||
ввод с клавиатуры целого числа:
0 |
Черный ворон 137 / 131 / 57 Регистрация: 31.01.2012 Сообщений: 435 |
||||
11.03.2013, 22:49 |
5 |
|||
0 |
127 / 125 / 16 Регистрация: 03.07.2011 Сообщений: 354 |
|
11.03.2013, 22:54 |
6 |
Черный ворон, странно, вы n считали, а потом уже никак и не используете ее. Да и можно isdigit() использовать, вроде лучше не опираться на опеределенные коды символов
0 |
137 / 131 / 57 Регистрация: 31.01.2012 Сообщений: 435 |
|
11.03.2013, 23:05 |
7 |
ZoRT, что странного в том как я считал переменную n?
0 |
127 / 125 / 16 Регистрация: 03.07.2011 Сообщений: 354 |
|
11.03.2013, 23:18 |
8 |
что странного в том как я считал переменную n? ну вы n считали, а ввод не ограничили n символами. для чего она тогда была нужна?
по поводу второго замечания: цифры 0123456789 находятся в числе базовых 128 символов (еще со времен 7-битной таблицы кодировки) и потому являются универсальными (имеют одни и те же номера) для произвольной кодировки. ну допустим во всех кодировках одинаковые коды. Но смысл использовать значения кодов, если так же можно использовать символьные литералы? Тем более для человека, не знающего коды символов наизусть (как я), не сразу понятно что именно выбирает код.
0 |
Ev[G]eN Mobile Software Engineer 5366 / 1585 / 956 Регистрация: 23.01.2011 Сообщений: 3,214 |
||||
11.03.2013, 23:20 |
9 |
|||
1 |
oleg@tor1 32 / 17 / 3 Регистрация: 05.09.2011 Сообщений: 151 |
||||
11.03.2013, 23:23 |
10 |
|||
Вот такой простой вариант.
0 |
Ev[G]eN |
11.03.2013, 23:26
|
Не по теме: oleg@tor1, доставило :rofl:
1 |
32 / 17 / 3 Регистрация: 05.09.2011 Сообщений: 151 |
|
11.03.2013, 23:28 |
12 |
Ev[G]eN, видишь какая радость )) Так ведь работает ))) Только не говори, что ВАЗ тоже ездит
0 |
137 / 131 / 57 Регистрация: 31.01.2012 Сообщений: 435 |
|
11.03.2013, 23:30 |
13 |
ну вы n считали, а ввод не ограничили n символами. для чего она тогда была нужна? ок. моя промашка.
Но смысл использовать значения кодов, если так же можно использовать символьные литералы? я конечно не специалист, но вроде бы при таком сравнении компилятор все равно за меня подставит тоже самое преобразование (хотя может это и ошибочная мысль). а компиляторы бывают разные и работают по разному… зачем на его хрупкие плечи перекладывать лишний труд?
0 |
0 / 0 / 0 Регистрация: 12.02.2013 Сообщений: 45 |
|
12.03.2013, 14:16 [ТС] |
14 |
countOfDigits += (isdigit(symbol)) ? 1 : 0; что означает эта строчка?!
0 |
32 / 17 / 3 Регистрация: 05.09.2011 Сообщений: 151 |
|
12.03.2013, 14:38 |
15 |
«? : » — это условная операция. В данном случае: если символ — цифра, тогда счетчик countOfDigits увеличивается на 1, если не цифра — 0; Добавлено через 2 минуты
0 |
Посчитать общее количество определенных цифр в числах
Просмотров 13.8к. Обновлено 15 октября 2021
Посчитать, сколько раз встречается определенная цифра в введенной последовательности чисел. Количество вводимых чисел и цифра, которую необходимо посчитать, задаются вводом с клавиатуры.
- Запросить у пользователя количество вводимых чисел (n) и цифру для подсчета (d).
- Присвоить счетчику цифр значение 0.
- Выполнить n раз цикл, в теле которого
- запрашивать очередное число,
- пока это число не сократиться до нуля
- извлекать последнюю его цифру и сравнивать с цифрой, которую надо посчитать,
- увеличивать значение счетчика цифр на 1, если сравниваемые цифры совпадают,
- избавляться от последней цифры числа.
- В конце программы вывести количество посчитанных цифр на экран.
Pascal
количество цифр в числе паскаль
var
m: word;
n,d,i, count: byte;
begin
write('Количество чисел: ');
readln(n);
write('Цифра: ');
readln(d);
count := 0;
for i:=1 to n do begin
readln(m);
while m > 0 do begin
if m mod 10 = d then
count := count + 1;
m := m div 10;
end;
end;
writeln('Количество цифр: ', count);
end.
Количество чисел: 6
Цифра: 5
301
8952
155
306
200
541
Количество цифр: 4
Язык Си
#includemain () {
int n,d,m,count,i;
printf("Количество чисел: ");
scanf("%d", &n);
printf("Цифра: ");
scanf("%d", &d);
count = 0;
for(i=0;i< n;i++) {
scanf("%d", &m);
while (m>0) {
if (m%10 == d) count += 1;
m = m / 10;
}
}
printf("Количество цифр: %dn", count);
}
Количество чисел: 4
Цифра: 1
10500
1400
500
201
Количество цифр: 3
Python
количество цифр в числе python (питон)
n = int(input("Сколько будет чисел? "))
d = int(input("Какую цифру считать? "))
count = 0
for i in range(1,n+1):
m = int(input("Число " + str(i) + ": "))
while m > 0:
if m%10 == d:
count += 1
m = m // 10print("Было введено %d цифр %d" % (count, d))
Сколько будет чисел? 5
Какую цифру считать? 0
Число 1: 508
Число 2: 1024
Число 3: 300
Число 4: 10101
Число 5: 15
Было введено 6 цифр 0
КуМир
алг количество цифры
нач
цел m,n,d,i,count;
вывод "Количество чисел: "
ввод n
вывод "Цифра: "
ввод d
count := 0
нц для i от 1 до n
ввод m
нц пока m > 0
если mod(m,10) = d то
count := count + 1
все
m := div(m,10)
кц
кц
вывод "Количество цифр: ", count
кон
Количество чисел: 5
Цифра: 0
1099
8586
2300
15
10
Количество цифр: 4
Basic-256
input "Количество чисел: ", n
input "Цифра: ", d
c = 0
for i=1 to n
input m
while m > 0
if m%10 = d then c = c+1
m = m 10
endwhile
next i
print "Количество цифр: " + c
Количество чисел: 10
Цифра: 4
1234
11
1287
8945
200783
12
84
9600
544
244
Количество цифр: 7
Мой код проходит по всем тестам на 90%
, не проходит один тест.
Проблему почему не проходит на все 100
— не нашёл..
Условие: Найти количество цифр заданного целого числа number
.
Пример: вводим число 37
должно вывести число 2
.
Код:
#include <iostream>
int main() {
long long int number = 0;
int result = 0;
std::cin >> number;
while(number != 0) {
number /= 10;
result++;
}
std::cout << result << "n";
}
insolor
45.8k16 золотых знаков54 серебряных знака95 бронзовых знаков
6
Почти наверняка в том единственном тесте вводится 0
.
Делать условие именно на то, что юзер введёт цифру 0, и нужно вывести 1. Както колхозно, как можно реализовать без етого?
Делать отдельно условие нормально, но если есть желание сделать без условия, то можно и без него:
cin >> number;
int result = 1;
while (number /= 10) ++result;
cout << result;
ответ дан 5 мар 2022 в 10:17
Qwertiy♦Qwertiy
121k24 золотых знака121 серебряный знак291 бронзовый знак
3
Если вводите с консоли, то и не нужно рассматривать последовательность цифр как число. Можно просто читать и «выбрасывать» символы_цифры, с увеличением счетчика:
int res{};
while (isdigit(getchar())) ++res;
printf("%d", res);
Вариантов решения много.
Задание должно четко выразить что критично и каким образом задается объект. Потому что «задано число» наталкивает написать функцию с целочисленным аргументом, а пример рождает вопрос «откуда вводится?»…
ответ дан 5 мар 2022 в 10:23
AR HovsepyanAR Hovsepyan
15.8k3 золотых знака13 серебряных знаков30 бронзовых знаков
2
Оглавление:
- 1 Задача — Посчитать общее количество определенных цифр в числах
— программирование на Pascal, Си, Кумир, Basic-256, Python- 1.1 Pascal
- 1.2 Язык Си
- 1.3 Python
- 1.4 КуМир
- 1.5 Basic-256
Задача — Посчитать общее количество определенных цифр в числах
— программирование на Pascal, Си, Кумир, Basic-256, Python
Посчитать, сколько раз встречается определенная цифра в введенной последовательности чисел. Количество вводимых чисел и цифра, которую необходимо посчитать, задаются вводом с клавиатуры.
- Запросить у пользователя количество вводимых чисел (n) и цифру для подсчета (d).
- Присвоить счетчику цифр значение 0.
- Выполнить n раз цикл, в теле которого
- запрашивать очередное число,
- пока это число не сократиться до нуля
- извлекать последнюю его цифру и сравнивать с цифрой, которую надо посчитать,
- увеличивать значение счетчика цифр на 1, если сравниваемые цифры совпадают,
- избавляться от последней цифры числа.
- В конце программы вывести количество посчитанных цифр на экран.
Pascal
var
m: word;
n,d,i, count: byte;
begin
write(‘Количество чисел: ‘);
readln(n);
write(‘Цифра: ‘);
readln(d);
count := 0;
for i:=1 to n do begin
readln(m);
while m > 0 do begin
if m mod 10 = d then
count := count + 1;
m := m div 10;
end;
end;
writeln(‘Количество цифр: ‘, count);
end. Количество чисел: 6
Цифра: 5
301
8952
155
306
200
541
Количество цифр: 4
Язык Си
#include <stdio.h>
main () {
int n,d,m,count,i;
printf(«Количество чисел: «);
scanf(«%d», &n);
printf(«Цифра: «);
scanf(«%d», &d);
count = 0;
for(i=0;i<n;i++) {
scanf(«%d», &m);
while (m>0) {
if (m%10 == d) count += 1;
m = m / 10;
}
}
printf(«Количество цифр: %dn», count);
} Количество чисел: 4
Цифра: 1
10500
1400
500
201
Количество цифр: 3
Python
n = int(input(«Сколько будет чисел? «))
d = int(input(«Какую цифру считать? «))
count = 0
for i in range(1,n+1):
m = int(input(«Число » + str(i) + «: «))
while m > 0:
if m%10 == d:
count += 1
m = m // 10
print(«Было введено %d цифр %d» % (count, d)) Сколько будет чисел? 5
Какую цифру считать? 0
Число 1: 508
Число 2: 1024
Число 3: 300
Число 4: 10101
Число 5: 15
Было введено 6 цифр 0
КуМир
алг количество цифры
нач
цел m,n,d,i,count;
вывод «Количество чисел: »
ввод n
вывод «Цифра: »
ввод d
count := 0
нц для i от 1 до n
ввод m
нц пока m > 0
если mod(m,10) = d то
count := count + 1
все
m := div(m,10)
кц
кц
вывод «Количество цифр: «, count
кон Количество чисел: 5
Цифра: 0
1099
8586
2300
15
10
Количество цифр: 4
Basic-256
input «Количество чисел: «, n
input «Цифра: «, d
c = 0
for i=1 to n
input m
while m > 0
if m%10 = d then c = c+1
m = m 10
endwhile
next i
print «Количество цифр: » + c Количество чисел: 10
Цифра: 4
1234
11
1287
8945
200783
12
84
9600
544
244
Количество цифр: 7
Did you find apk for android? You can find new Free Android Games and apps.
Описание задачи
Программа принимает число и выводит количество цифр в нем.
Решение задачи
- Берем значение целого числа и записываем его в переменную.
- Используем цикл
while
и при помощи оператора целочисленного деления «уничтожаем» каждую цифру числа начиная с последней, а при каждой итерации цикла специально созданную переменную (так называемый счетчик цикла) увеличиваем на единицу. После того как введенное в начале число станет равным 0, цикл прекратит свою работу. - Выводим значение этого счетчика на экран.
- Конец.
Исходный код
Ниже дан исходный код для подсчета количества цифр в данном числе. Результаты работы программы также даны ниже.
n = int(input("Введите число:")) count = 0 while(n > 0): count = count + 1 n = n // 10 print("Количество цифр равно:", count)
Объяснение работы программы
- Записываем введенное пользователем число в переменную
n
. - Задаем переменную
count
и инициируем ее значением 0. - Используем цикл
while
и при помощи оператора целочисленного деления «уничтожаем» каждую цифру числа начиная с конца. - При каждой итерации цикла переменная
count
увеличивается на 1. - Как только цифры в числе заканчиваются и число
n
становится равным 0, цикл прекращает свою работу. - Выводим переменную
count
на экран.
Результаты работы программы
Пример 1: Введите число:123 Количество цифр равно: 3 Пример 2: Введите число:1892 Количество цифр равно: 4
Примечание переводчика
Надо заметить, что опять эту задачу можно решить намного короче, если использовать методы строк.
print("Количество цифр равно:", len(input("Введите число:")))
Здесь введенное число принимается как строка и мы просто выводим ее длину.