Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Задача 3. Работа с цифрами целого числа
Условие задачи. Дано трёхзначное натуральное число N. Получить число, содержащее цифры исходного числа в обратном порядке. Например, для N=583 должно быть получено число 385. Исходным данным в этой задаче является трехзначное натуральное число n, которое вводится с клавиатуры. Наша задача - получить новое число ne w n, в котором цифры исходного числа будут расположены в обратном порядке. Любое натуральное число в десятичной системе счисления можно записать в виде суммы разрядных слагаемых (числа единиц, десятков, сотен и т.д.). Каждая позиция цифры в числе называется разрядом. В трехзначном числе - три разряда: разряд единиц - a, разряд десятков - b и разряд сотен – c. И любое десятичное число можно представить в следующем виде: n = c *100+b*10+ a. Например, число 583 можно записать как сумму 5*100+8*10+3= 583. Нам надо разбить наше число n = 583 на разряды, а затем собрать это число в обратном порядке, т.е. сформировать число вида n = a *100+ b *10+ c (в нашем примере3*100+8*10+5=385). Для того, чтобы выделить разряды числа, используют операции целочисленной арифметики, а именно получение целой части частного от деления целого на целое и остатка от деления целого на целое. Будем использовать обозначение div для операции целочисленного деления, а для операции получения остатка от целочисленного деления – mod. Выделение разрядов числа можно выполнить с помощью разной последовательности действий. Рассмотрим два способа решения задачи. Первый вариант. Разряд единицлюбого числа в десятичной системе счисления можно выделить, если получить остаток от деления исходного числа на 10(a =583 mod 10=3). Теперь нужно сделать так, чтобы разряд единиц больше не рассматривать, т.е. дальше работать с двузначным числом, отбросив младший разряд. Для этого уменьшим исходное число n на разряд, взяв частное от деления n на 10 ( 583 div 10=58). Далее выделим младший разряд уже в новом числе 58 (в наших обозначениях это разряд десятков b исходного числа). Для этого надо получить остаток от деления числа 58 на 10(b = 58 div 10=8). Затем опять надо уменьшить на разряд число 58, чтобы отбросить цифру 8 ( 58 div 10=5). Получили однозначное число, которое соответствует разряду сотен (c) исходного числа n. Теперь можем из полученных разрядов сформировать новое число newn, в котором a будет находиться в разряде сотен, b в разряде десятков, а c в разряде единиц. Для этого сформируем сумму new n = a *100+ b *10+ c (3*100+8*10+5=385). Исходное число n и полученное число newn надо вывести на экран.
Структурированная запись алгоритма 3.1 1. Ввод натурального числа n 2. Вывод исходного числа n для контроля 3. Выделение разряда единиц исходного числа a= n mod 10 4. Уменьшение числа n на 1 разряд – получение двузначного числа 5. Выделение разряда десятков исходного числа b= n mod 10 6. Уменьшение числа n ещё на один разряд – получение однозначного числа 7. Запись полученного числа в разряд сотен c=n 8. Формирование числа с обратным порядком цифр new n = a *100+ b *10+ c 9. Вывод числа с обратным порядком цифр newn Схема алгоритма Программа на языке Си #include <stdio.h> #include <conio.h> int main() { int n, newn, a, b, c; printf("Введите число \n"); scanf("%d",&n); printf("Исходное число = %d\n",n); a=n%10;// 3-я цифра - единицы n=n/10;// уменьшение числа на разряд b=n%10;// 2-я цифра - десятки n=n/10;// уменьшение числа на разряд c=n; // 1–я цифра - сотни newn=a*100+b*10+c; printf("Результирующее число =%d \n",newn); getch(); return 0; } Программа на языке Паскаль Program Pr_3_1; Var n, newn, a, b, c:integer; begin writeln('Введите число'); readln(n); writeln(' Исходное число=', n); a:=n mod 10; {3-я цифра - единицы } n:=n div 10; { уменьшение числа на разряд } b:=n mod 10; { 2-я цифра - десятки } n:=n div 10; { уменьшение числа на разряд } c:=n; { 1–я цифра - сотни} newn:= a*100 + b*10+c; { сформ. новое число} writeln(' Результирующее число= ', newn); end. Программа на языке Фортран Program main_3_1 Implicit none integer n, newn, a, b, c print*, 'Введите число' read *, n print ‘(A, I3)’, ' Исходное число=', n a=mod(n,10)! 3-я цифра - единицы n=n/10! уменьшение числа на разряд b=mod(n,10)! 2-я цифра - десятки n=n/10! уменьшение числа на разряд c=n! 1–я цифра - сотни newn = a*100 + b*10+c!формирование нового числа print '(A, I3)', ' Результирующее число=', newn end Программа на языке Python print("Введите трехзначное натуральное число:") n = int(input()) print("Исходное число:", n) a = n % 10 n = n // 10 b = n % 10 n = n // 10 c = n newn = a*100 + b*10 +c print("Число с обратным порядком цифр:", newn) Программа в системе Матлаб n=input('Введите n=') disp(sprintf('Исходное число=%4d',n))
a=mod(n,10); n=fix(n/10); b=mod(n,10); n=fix(n/10); c=n; newn=a*100+b*10+c; disp(sprintf('Результирующее число=%4d',newn))
Второй вариант Выделение разрядов в трехзначном числе можно выполнить по-другому. Например, для числа 583. Для получения 1-ой цифра числа (разряда сотен) можно разделить исходное число на 100 c = n div 100 (с=583 div 100 =5). Вторую цифру (разряд десятков) можно получить, если взять остаток от деления на 10 уменьшенного в 10 раз исходного числа b = n div 10 mod 10 (b = 583 div 10 mod 10= 58 mod 10= 8). Для получения 3-ей цифры (разряда единиц), надо получить остаток от деления исходного числа на 10 a = n mod 10 (a = 583 mod 10 = 3). Теперь можем из полученных разрядов сформировать новое число newn = 100* a + b *10+ c (newn = 3*100+8*10+5=385)
|
||||||
Последнее изменение этой страницы: 2021-04-12; просмотров: 147; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.10.239 (0.017 с.) |