Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 228; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.009 с.) |