Форум программистов, компьютерный форум CyberForum.ru

шестнадцатеричных числа. Определить наибольший общий делитель - C++

Восстановить пароль Регистрация
 
Aleksandr_D
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 24
15.11.2013, 22:04     шестнадцатеричных числа. Определить наибольший общий делитель #1
Помогите сделать задание, завтра сдавать...
Заданы два длинных неотрицательных шестнадцатеричных числа. Напишите программу, определяющую их наибольший общий делитель.
 Комментарий модератора 
В Матанализ с просьбой написать программу?! Вряд ли вам можно помочь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2013, 22:04     шестнадцатеричных числа. Определить наибольший общий делитель
Посмотрите здесь:

Наибольший общий делитель C++
C++ наибольший общий делитель
C++ Определить наибольший общий делитель трех натуральных чисел
C++ С клавиатруы вводится 2 числа, найти их наибольший общий делитель.
C++ Наибольший общий делитель
Разработать функцию, которая для заданного натурального числа N и M возвращает их наибольший общий делитель. C++
Определить наибольший общий делитель для 3-х введенных с клавиатуры чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
 Аватар для palva
2413 / 1635 / 204
Регистрация: 08.06.2007
Сообщений: 6,469
Записей в блоге: 4
15.11.2013, 22:20     шестнадцатеричных числа. Определить наибольший общий делитель #2
Задание по C++ логичнее размещать в форуме по C++.
MrCath
7 / 7 / 1
Регистрация: 08.11.2012
Сообщений: 68
15.11.2013, 22:51     шестнадцатеричных числа. Определить наибольший общий делитель #3
Это сложно?
Путем простой формулы, которую проходят на общем курсе по информатике в классе, как бы не соврать, восьмом (у нас так было) переводим это число в систему счисления с основанием 10.
ИЛИ если прям вообще обленились, сделать ввод числа в строку, а строку перевести в числовую переменную через sscanf с использованием %x.

Путем введения переменной и присваивания ей единицы и простейшего цикла проверяем все возможные варианты от единицы до величины меньшего числа (т.к. дальше уже общих делителей не существует) и если это общий делитель, то записываем переменную цикла в нашу переменную с делителем, а затем выводим результат, т.к. последний и есть наибольший !

Где же такие задания дают?)
palva
 Аватар для palva
2413 / 1635 / 204
Регистрация: 08.06.2007
Сообщений: 6,469
Записей в блоге: 4
15.11.2013, 23:07     шестнадцатеричных числа. Определить наибольший общий делитель #4
MrCath,
Цитата Сообщение от Aleksandr_D Посмотреть сообщение
два длинных неотрицательных шестнадцатеричных числа
Я так понимаю, что "длинные" числа не помещаются в стандартные компьютерные переменные. Например, они могут быть 100-значными 16-ричными числами. Поэтому и указывается, что они шестнадцатеричные, поскольку не предполагается их преобразование в двоичный вид. И ответ тоже, похоже, предполагается в 16-ричном виде. Но это все мои фантазии. Топик-стартер не опускается до осмысления и объяснения задачи для нас. Да и с выбором форума тоже не заморачивается.
Aleksandr_D
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 24
16.11.2013, 01:55  [ТС]     шестнадцатеричных числа. Определить наибольший общий делитель #5
Напишите код пожалуйста)
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
16.11.2013, 07:43     шестнадцатеричных числа. Определить наибольший общий делитель #6
Цитата Сообщение от Aleksandr_D Посмотреть сообщение
Напишите код пожалуйста)
вот функция, вычисляющая НОД для 2 чисел:
C++
1
2
3
long int nod (long int x, long int y) {
 return (x==0 ? y : nod(y%x,x) );
}
какая ей разница 16-ричные они или десятичные?
если ответ надо вывести тоже 16-рично, ответ, полученный функцией, преобразуй в 16-ричную запись через itoa или просто выведи printfом как 16-ричное
C++
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
long int nod (long int x, long int y) {
 return (x==0 ? y : nod(y%x,x) );
}
void main () {
long int x=0x100,y=0x80;
long int n=nod(x,y);
printf ("\n%X",n);
getchar();
}
ответ : 80 т.е. 128 - и это так и есть для 0x100=256 и 0x80=128
Aleksandr_D
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 24
29.11.2013, 16:54  [ТС]     шестнадцатеричных числа. Определить наибольший общий делитель #7
Напишите пожалуйста краткое описание кода и как ввести самому числа при выводе на экран)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 17:01     шестнадцатеричных числа. Определить наибольший общий делитель
Еще ссылки по теме:

C++ Наибольший общий делитель
C++ Даны два числа. Найти их наибольший общий делитель
C++ Даны два числа А и B. Найти их наибольший общий делитель
Наибольший общий делитель C++
Наибольший общий делитель C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
29.11.2013, 17:01     шестнадцатеричных числа. Определить наибольший общий делитель #8
Описание алгоритма - см. Алгоритм Евклида
Ввод с клавы - если на обычном Си, замени
C
1
long int x=0x100,y=0x80;
на
C
1
2
3
long int x,y;
printf ("\nВведите первое число:"); scanf ("%ld",&x);
printf ("\nВведите второе число:"); scanf ("%ld",&y);
при вводе десятичных чисел
ну или шаблон "%lx" вместо "%ld" если вводить прямо 16-ричные (ff вместо 255)
Yandex
Объявления
29.11.2013, 17:01     шестнадцатеричных числа. Определить наибольший общий делитель
Ответ Создать тему
Опции темы

Текущее время: 08:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru