Как вывести число Y?
можете помочь с программой?Вот условие:Дано трехзначное целое число . Все цифры должны быть отличны от нуля. Вывести новое трехзначное число , каждая цифра которого является остатком от деления числа 25 на соответствующую цифру числа .Должно быть выведено именно число , (оно может иметь меньше разрядов,если первые цифры получатся равными нулю), а не выведены на экран последовательно три цифры. Вот мой код:
#include #include using namespace std; int main() < setlocale(LC_ALL, "RUS"); int x, y; cout > x; int a, b, c; a = x % 25; b = x % 25; c = x % 25; int sum = a + b + c; cout > y; (sum % y != 0) ? cout
Что тут нужно исправить?Помогите пожалуйста.
Отслеживать
задан 24 окт 2020 в 11:16
105 12 12 бронзовых знаков
нужно исправить все, потому что никакого отношения к вашей задаче ваш код не имеет! Просто пытаетесь обойти условие, что домашку надо попытаться сделать самому! Где в вашем условии говорится, что выводом может быть «NO»? Какое еще однозначное число вы пытаетесь ввести?!
24 окт 2020 в 11:28
Ну я уберу No.И исправлю вывод.
Как вывести число в с
Для вывода информации на консоль мы уже использовали встроенный метод Console.WriteLine . То есть, если мы хотим вывести некоторую информацию на консоль, то нам надо передать ее в метод Console.WriteLine:
string hello = "Привет мир"; Console.WriteLine(hello); Console.WriteLine("Добро пожаловать в C#!"); Console.WriteLine("Пока мир. "); Console.WriteLine(24.5);
Привет мир! Добро пожаловать в C#! Пока мир. 24,5
Нередко возникает необходимость вывести на консоль в одной строке значения сразу нескольких переменных. В этом случае мы можем использовать прием, который называется интерполяцией:
string name = "Tom"; int age = 34; double height = 1.7; Console.WriteLine($"Имя: Возраст: Рост: м");
Для встраивания отдельных значений в выводимую на консоль строку используются фигурные скобки, в которые заключается встраиваемое значение. Это можем значение переменной ( ) или более сложное выражение (например, операция сложения ). А перед всей строкой ставится знак доллара $.
При выводе на консоль вместо помещенных в фигурные скобки выражений будут выводиться их значения:
Имя: Tom Возраст: 34 Рост: 1,7м
Есть другой способ вывода на консоль сразу нескольких значений:
string name = "Tom"; int age = 34; double height = 1.7; Console.WriteLine("Имя: Возраст: Рост: м", name, height, age);
Здесь мы видим, что строка в Console.WriteLine содержит некие числа в фигурных скобках: , , . Это плейсхолдеры, вместо которых при выводе строки на консоль будут подставляться некоторые значения. Подставляемые значения указываются после строки через запятую.
При этом важен порядок подобных плейсхолдеров. Например, в данном случае после строки первой указана переменная name, потом height и потом age. Поэтому значение переменной name будет вставляться вместо первого плейсхолдера — (нумерация начинается с нуля), height — вместо , а age — вместо . Поэтому в итоге пи выводе на консоль строка
"Имя: Возраст: Рост: м"
будет заменена на
"Имя: Tom Возраст: 34 Рост: 1,7м"
Console.Write
Кроме Console.WriteLine() можно также использовать метод Console.Write() , он работает точно так же за тем исключением, что не добавляет переход на следующую строку, то есть последующий консольный вывод будет выводиться на той же строке.
string name = "Tom"; int age = 34; double height = 1.7; Console.Write($"Имя: Возраст: Рост: м");
Консольный ввод
Кроме вывода информации на консоль мы можем получать информацию с консоли. Для этого предназначен метод Console.ReadLine() . Он позволяет получить введенную строку.
Console.Write("Введите свое имя: "); string? name = Console.ReadLine(); Console.WriteLine($"Привет ");
В данном случае все, что вводит пользователь, с помощью метода Console.ReadLine() передается в переменную name.
Пример работы программы:
Введите свое имя: Том Привет Том
Особенностью метода Console.ReadLine() является то, что он может считать информацию с консоли только в виде строки. Кроме того, возможная ситуация, когда для метода Console.ReadLine не окажется доступных для считывания строк, то есть когда ему нечего считывать, он возвращаает значение null , то есть, грубо говоря, фактически отсутствие значения. И чтобы отразить эту ситуацию мы определяем переменную name , в которую получаем ввод с консоли, как переменную типа string? . Здесь string указывает, что переменная может хранить значения типа string, то есть строки. А знак вопроса ? указывает, что переменная также может хранить значение null , то есть по сути не иметь никакого значения. Далее мы более подробно разберем null и как с ним работать.
Однако, может возникнуть вопрос, как нам быть, если, допустим, мы хотим ввести возраст в переменную типа int или другую информацию в переменные типа double или decimal? По умолчанию платформа .NET предоставляет ряд методов, которые позволяют преобразовать различные значения к типам int, double и т.д. Некоторые из этих методов:
- Convert.ToInt32() (преобразует к типу int)
- Convert.ToDouble() (преобразует к типу double)
- Convert.ToDecimal() (преобразует к типу decimal)
Пример ввода значений:
Console.Write("Введите имя: "); string? name = Console.ReadLine(); Console.Write("Введите возраст: "); int age = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите рост: "); double height = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите размер зарплаты: "); decimal salary = Convert.ToDecimal(Console.ReadLine()); Console.WriteLine($"Имя: Возраст: Рост: м Зарплата: $");
При вводе важно учитывать текущую операционную систему. В одних культурах разделителем между целой и дробной частью является точка (США, Великобритания. ), в других — запятая (Россия, Германия. ). Например, если текущая ОС — русскоязычная, значит, надо вводить дробные числа с разделителем запятой. Если локализация англоязычная, значит, разделителем целой и дробной части при вводе будет точка.
Пример работы программы:
Введите имя: Том Введите возраст: 25 Введите рост: 1,75 Введите размер зарплаты: 300,67 Имя: Том Возраст: 25 Рост: 1,75м Зарплата: 300,67$
Перевернуть число
Вводится целое число. Вывести число, обратное введенному по порядку составляющих его цифр. Например, введено 3425, надо вывести 5243.
Решение задачи на языке программирования Python
Алгоритм:
- Найдем остаток от деления на 10 исходного (первого) числа. Тем самым получим последнюю его цифру. Запомним ее.
- Присвоим эту цифру новому (второму) числу-«перевертышу».
- Разделим нацело на 10 первое число. Тем самым избавимся от последней цифры в нем.
- Снова найдем остаток от деления на 10 того, что осталось от первого числа. Запомним цифру-остаток.
- Разделим нацело на 10 первое число. Избавимся от текущей последней цифры в нем.
- Умножим на 10 второе число. Тем самым увеличим его разрядность до двух и сдвинем первую цифру в более старший разряд.
- Добавим к полученному второму числу запомненную ранее цифру из первого числа.
- Будем повторять действия п. 4-7 пока первое число не уменьшится до нуля, т. е. пока не избавимся от всех его разрядов.
n1 = int(input("Введите целое число: ")) # Последнюю цифру первого числа переносим во второе digit = n1 % 10 n2 = digit # Избавляемся от последней цифры первого числа n1 = n1 // 10 while n1 > 0: # находим остаток - последнюю цифру digit = n1 % 10 # делим нацело - удаляем последнюю цифру n1 = n1 // 10 # увеличиваем разрядность второго числа n2 = n2 * 10 # добавляем очередную цифру n2 = n2 + digit print('"Обратное" ему число:', n2)
Примеры выполнения кода:
Введите целое число: 32809 "Обратное" ему число: 90823
Введите целое число: 78290 "Обратное" ему число: 9287
На самом деле мы можем не добавлять последнюю цифру первого числа во второе до цикла. Если присвоить n2 ноль, то в цикле при выполнении выражения n2 = n2 * 10 не будет происходить сдвига разряда, так как при умножении на 0 получается 0. И первая цифра будет добавляться в разряд единиц.
n1 = int(input("Введите целое число: ")) n2 = 0 while n1 > 0: digit = n1 % 10 n1 = n1 // 10 n2 = n2 * 10 n2 = n2 + digit print('"Обратное" ему число:', n2)
Приведенный алгоритм решения математический и соответствует задаче, если условие, что надо обрабатывать именно число, является строгим.
Однако средства Python позволяют решить подобную задачу более практично. Так у списков есть метод reverse , позволяющий изменять порядок элементов на обратный. Мы можем получить из исходной строки список символов, выполнить его реверс, после чего с помощью строкового метода join опять собрать в единую строку.
n1 = input("Введите целое число: ") n_list = list(n1) n_list.reverse() n2 = "".join(n_list) print('"Обратное" ему число:', n2)
Также можно воспользоваться взятием среза из исходной строки с первого до последнего символа с обратным шагом:
n1 = input("Введите целое число: ") n2 = n1[::-1] print('"Обратное" ему число:', n2)
Два последних варианта решения задачи — это способы переворота строки, а не числа как такового. Если объект, который надо переверуть, изначально имеет числовой тип данных (например, генерируется функцией randint() ), то его придется преобразовывать в строковый тип данных с помощью функции str() . И если на выходе мы должны получить опять же число, то надо будет строку превращать обратно в число с помощью функции int() .
from random import randint print("Исходное число:", end=' ') n1 = randint(5000, 1000000) print(n1) n1 = str(n1) n2 = n1[::-1] n2 = int(n2) print('"Обратное" ему число:', n2)
Исходное число: 970334 "Обратное" ему число: 433079
X Скрыть Наверх
Решение задач на Python
Как вывести число в сокращенном формате?

Как представить числа в таком формате? К примеру если приходит 10000 то ее нужно вывести как 10 тыс.
- Вопрос задан 07 нояб. 2023
- 180 просмотров
Комментировать
Решения вопроса 1

Для правильного вопроса надо знать половину ответа
function shortNumber(val) < const degree = Math.floor(Math.log10(val) / 3); const suffix = ['', ' тыс.', ' млн', ' млрд'][degree]; const num = val / (10 ** (degree * 3)); return `$= 10 ? 0 : 1)>$`; > shortNumber(123); // "123" shortNumber(12345); // "12 тыс." shortNumber(1234567); // "1.2 млн"
Ответ написан 07 нояб. 2023
Нравится 3 1 комментарий