Для записи римскими цифрами используются символы i, v, x, l, с, d, м, обозначающие соответственно числа 1, 5, 10, 50, 100, 500, 1000. составить программу, которая запись любого данного числа п (п ≤ 3999) арабскими цифрами переводила бы в запись римскими цифрам. на с++. string romezifr[13] = { "i","iv","v","ix","x","xl","l","xc","c","cd","d","cm","m" }; int arabzifr[13] = { 1,4,5,9,10,40,50,90,100,400,500,900,1000 }; int ara,i=13; //iдля цикла string s=" "; //s=для вывода числа на роме cout < < "ведите число< =3999"; cin > > ara; while (ara > 0) { while (arabzifr[i] > ara) i -= 1; //уменьшаем s = s + romezifr[i]; ara -= arabzifr[i]; } cout < < "число=" < < s; может можно по другому? у меня она не работает.
208
373
Ответы на вопрос:
#include < iostream> #include < string> using namespace std; string solve(int num, int divd) { string result = ""; int count = 0; while(num) { count = num / divd; if(count) { num %= divd; for (int i = 0; i < count; i++) switch(divd) { case 1000: { result+="m"; break; } case 900: { result+="cm"; break; } case 800: { result+="dcc"; break; } case 700: { result+="dcc"; break; } case 600: { result+="dc"; break; } case 500: { result+="d"; break; } case 400: { result+="cd"; break; } case 300: { result+="ccc"; break; } case 200: { result+="cc"; break; } case 100: { result+="c"; break; } case 90: { result+="xc"; break; } case 80: { result+="lxxx"; break; } case 70: { result+="lxx"; break; } case 60: { result+="lx"; break; } case 50: { result+="l"; break; } case 40: { result+="xl"; break; } case 30: { result+="xxx"; break; } case 20: { result+="xx"; break; } case 10: { result+="x"; break; } case 9: { result+="ix"; break; } case 8: { result+="viii"; break; } case 7: { result+="vii"; break; } case 6: { result+="vi"; break; } case 5: { result+="v"; break; } case 4: { result+="iv"; break; } case 3: { result+="iii"; break; } case 2: { result+="ii"; break; } case 1: { result+="i"; break; } } } if(divd < = 1000 & & divd > 100) divd-=100; else if(divd < = 100 & & divd > 10) divd-=10; else divd-=1; } return result; } int main() { int num,count; cin > > num; if(num < = 3999) cout < < solve(num,1000); else cout < < "incorrect input."; return 0; }
#include< iostream> #include< string> using std: : string; string func(int num, string, string, string); int main(int argc, char argv[]) { system("chcp 1251> 0"); std: : cout < < "введите число не большее 3999: "; int arabien_num; if : : cin > > arabien_num) || (arabien_num > 3999)) { std: : cerr < < "невозможно инициализировать число! " < < std: : endl; exit(1); } std: : string rome_num; rome_num += func(arabien_num / 1000, "", "", "m"); arabien_num %= 1000; rome_num += func(arabien_num / 100, "m", "d", "c"); arabien_num %= 100; rome_num += func(arabien_num / 10, "c", "l", "x"); arabien_num %= 10; rome_num += func(arabien_num , "x", "v", "i"); std: : cout < < rome_num < < std: : endl; return 0; } string func(int num, string hi, string re, string lo) { switch(num) { case 9: return lo + hi; case 8: return re + lo + lo + lo; case 7: return re + lo + lo; case 6: return re + lo; case 5: return re; case 4: return lo + re; case 3: return lo + lo + lo; case 2: return lo + lo; case 1: return lo; case 0: return ""; } }
// pascalabc.net 3.2, сборка 1400 от 13.03.2017 // внимание! если программа не работает, обновите версию! begin var a: =arrrandom(readinteger('n=',10); a.println; var m: =a.min; var b: =a.where(x-> x< > m); b.println; end. пример n= 30 -3 6 -2 5 -1 -10 3 9 8 5 2 9 4 -10 8 10 6 9 -8 4 -7 2 10 -7 -7 -5 1 2 0 -3 -3 6 -2 5 -1 3 9 8 5 2 9 4 8 10 6 9 -8 4 -7 2 10 -7 -7 -5 1 2 0 -3 с процедурами и функциями (высосано из пальца, ибо не нужно) // pascalabc.net 3.2, сборка 1400 от 13.03.2017 // внимание! если программа не работает, обновите версию! function arrmin(a: array of integer): =a.min; procedure newsequence(a: array of integer; del: integer; var s: sequence of integer); begin s: =a.where(x-> x< > del) end; begin var a: =arrrandom(readinteger('n=',10); a.println; var b: sequence of integer; newsequence(a,arrmin(a),b); b.println end.
Популярно: Информатика
-
PakiPusy26.06.2020 04:24
-
MaXIm010074257801.05.2023 17:01
-
anchousuchixa07.02.2021 16:41
-
AcidSmile13.02.2023 22:35
-
tereshkova1102.07.2020 18:04
-
zhanym202.06.2022 00:33
-
kotgemer24.06.2022 14:16
-
нура4922.03.2023 01:02
-
CNikolas200102.08.2021 15:58
-
ShiroChan2131.03.2021 21:25