vfilina
?>

Напишите процедуру на с++. котрая выводит на экран запись переданного ей числа в римской системе счисления

Информатика

Ответы

saveskul84
В C++ так называемых процедур как бы и нету. Есть функция возвращаемая void (ничего)

Код для 10 обозначений:

#include "stdafx.h"
#include <iostream>
using namespace std;
void printResult()
{
          string slist[10] = { "I", "II", "III", "IV", "V", "VI", "VII", "VII", "IX", "X" };
          int input = 0;
          cin >> input; cout << slist[input - 1].c_str() << "\n";
          system("pause");
}
int main()
{
           printResult(); return 0;
}
Maionova

Меньше чем 3-х основание СС быть не может. (Сама догадайся почему ;-)  

 

Делим:  

 

23 : 3 = 7 ост. 2 — подходит  

23 : 4 = 5 ост. 3 — не подходит  

23 : 5 = 4 ост. 3 — не подходит  

23 : 6 = 3 ост. 5 — не подходит  

23 : 7 = 3 ост. 2 — подходит  

23 : 8 = 2 ост. 7 — не подходит  

23 : 9 = 2 ост. 5 — не подходит  

23 : 10 = 2 ост. 3 — не подходит  

23 : 11 = 2 ост. 1 — не подходит  

23 : 12 = 1 ост. 11 — не подходит  

23 : 13 = 1 ост. 10 — не подходит  

23 : 14 = 1 ост. 9 — не подходит  

23 : 15 = 1 ост. 8 — не подходит  

23 : 16 = 1 ост. 7 — не подходит  

23 : 17 = 1 ост. 6 — не подходит  

23 : 18 = 1 ост. 5 — не подходит  

23 : 19 = 1 ост. 4 — не подходит  

23 : 20 = 1 ост. 3 — не подходит  

23 : 21 = 1 ост. 2 — подходит  

23 : 22 = 1 ост. 1 — не подходит  

23 : 23 = 1 ост. 0 — не подходит  

 

Далее для всех СС больше 23 остаток будет 23. Следовательно нет смысла их рассматривать.  

 

Итого: 2, 7 и 21.

mariia39

"...напечатает сначала 2, потом - 6" -- это значит a=2 и b=6?


про пятеричные записи ничего не понял...  :) И ИМХО к чему такие сложности? И для чего нам комп и программа? Я подправил исходную прогу чтобы она выдавала все числа подходящие по условию

var x,a,b: longint;


begin

   for var i := 999 DownTo 100 do begin

       a := 0;

       b := 1;

       x := i;

       while x>0 do begin

           if x mod 2 > 0 then a := a+1 else b := b+(x mod 5);

           x := x div 5;

       end;

       if (a = 2) and (b = 6) then writeln('x = ', i, ' a = ', a, ' b = ',b);

   end;

end.


прога проводит расчет для всх трехзначных чисел от 999 до 100

итого мы видим что максимальное подходящее число это 960

при необходимости прогу можно переделать чтобы она находила только максимальное число.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите процедуру на с++. котрая выводит на экран запись переданного ей числа в римской системе счисления
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Shevtsov1818
kisuhakisa
tatry2005
sandovo590
Gennadievna bessonov
ganzashop
Ofelya1308
Voronin-Albertovich
Yevgenevna
Stepanovich_Makarov
mishamedbrat
skvorec3424
Дмитрий-Олейникова
ann-perminova2008
Amulenkov