М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
geroi29
geroi29
30.05.2021 04:26 •  Информатика

Перестановка цифр Дано трехзначное число, в котором все цифры различны (abc). Напишите программу, которая выводит шесть чисел, образованных при перестановке цифр заданного числа. Формат входных данных На вход программе подаётся положительное трёхзначное целое число, все цифры которого различны. Формат выходных данных Программа должна вывести шесть чисел, образованных при перестановке цифр заданного числа в следующем порядке: abc, acb, bac, bca, cab, cba

👇
Ответ:
kirilladmiiral
kirilladmiiral
30.05.2021

так как число всего лишь трехзначное, то можно сделать в тупую за О(n^3):

#include <iostream>

using namespace std;

void solve(){

   string num;

   cin >> num;

   for(int i = 0; i < 3; i++)

       for(int j = 0; j < 3; j++)

           for(int k = 0; k < 3; k++)

               if(i != j && i != k && j != k)

                   cout << num[i] << num[j] << num[k] << "\n";

}

signed main(){

   solve();

}

4,4(24 оценок)
Открыть все ответы
Ответ:
gspd000
gspd000
30.05.2021
Попробуй Program PascalGuru; var s:string;    f,t:text;
function preobr(s:string):string;var i,j,p,n,sered:integer;    gl,zp,slovo:string;    m:array [1..80] of string;beginzp:='!?*,.'; gl:='аоуыэяеёюи';  p:=pos(' ',s); i:=0;        repeat        inc(i);        slovo:=copy(s,1,p-1);        m[i]:=slovo;        delete(s,1,p);        p:=pos(' ',s);        until p=0;        n:=i+1;        m[n]:=s;    for i:=1 to n do     begin    s:=m[i];       if pos(s[length(s)],zp)<>0 then p:=length(s)-1 else p:=length(s);     sered:=(p div 2)+1;    if (not odd(p)) or (p<3) then continue;     if pos(s[1],gl)=0       then continue;     if pos(s[sered],gl)=0   then continue;     if pos(s[p],gl)=0       then continue;      s[1]:=UpCase(s[1]);    s[sered]:=UpCase(s[sered]);    s[p]:=UpCase(s[p]);     m[i]:=s+'('+s[1]+','+s[sered]+','+s[p]+')';     end;         s:='';     for i:=1 to n do s:=s+m[i]+' '; preobr:=s;end;
 beginassign(f,'input.txt'); reset(f);assign(t,'output.txt'); rewrite(t); while not eof(f) do      begin      readln(f,s);      writeln(t, preobr(s) );      end;  writeln('Файл успешно записан...'); close(f);close(t);readln;end.
4,6(90 оценок)
Ответ:
dianaisaeva2
dianaisaeva2
30.05.2021
While (tnum != 0)  //tnum, tden - числитель и знаменатель искомой                                    дроби
    {
        if (tnum < tden)
        {
            temp = tnum;
            tnum = tden;
            tden = temp;
        }
        tnum = tnum - tden;
    }
    gcd = tden;  //вычисляем наибольший общий делитель
    numerator = numerator / gcd;  //делим числитель и знаменатель на
                                                      НОД, получаем сокращенную дробь
    denominator = denominator / gcd;
4,6(46 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ