Вот два варианта решения: 1)В первом варианте программа выдает неверный ответ, если в числе есть хотя бы один ноль.
var a, n, i, min, tmp, m: integer;
begin m := 1; read(a); tmp := a; n := 0; min := 10; while tmp > 0 do begin n := n + 1; if(tmp mod 10 < min) then min := tmp mod 10; tmp := tmp div 10; end; for i := 1 to n do m := m * 10; a := a + (min * m); a := a * 10; a := a + min; write(a); end.
2)Второй вариант с использованием строки:
var s: string; i, min: integer;
begin readln(s); min := 10; for i := 1 to length(s) do if(strtoint(s[i]) < min) then min := strtoint(s[i]); s := s + inttostr(min); s := inttostr(min) + s; writeln(s); end.
for (int i = 0; i < 4; i++) { int iEnd = iNumber % 10; if (iEnd % 2 == 0) iMulEven *= iEnd, cMask |= 1; else iMulOdd *= iEnd, cMask |= 2; iNumber /= 10; }
if (cMask == 3) std::cout << static_cast<double>(iMulEven) / iMulOdd << std::endl; else if (cMask == 1) std::cout << "There is no odd digits exists." << iMulEven << std::endl; else std::cout << "There is no even digits exists." << iMulOdd << std::endl; return 0; } /* end of the 'main' function */
1)В первом варианте программа выдает неверный ответ, если в числе есть хотя бы один ноль.
var
a, n, i, min, tmp, m: integer;
begin
m := 1;
read(a);
tmp := a;
n := 0;
min := 10;
while tmp > 0 do
begin
n := n + 1;
if(tmp mod 10 < min) then min := tmp mod 10;
tmp := tmp div 10;
end;
for i := 1 to n do
m := m * 10;
a := a + (min * m);
a := a * 10;
a := a + min;
write(a);
end.
2)Второй вариант с использованием строки:
var
s: string;
i, min: integer;
begin
readln(s);
min := 10;
for i := 1 to length(s) do
if(strtoint(s[i]) < min) then min := strtoint(s[i]);
s := s + inttostr(min);
s := inttostr(min) + s;
writeln(s);
end.
/* main program function */
int main()
{
int
iMulEven = 1,
iMulOdd = 1,
iNumber;
char cMask = 0;
std::cin >> iNumber;
if (iNumber > 9999 || iNumber < 1000)
{
std::cout << "Error! Input the correct number!" << std::endl;
return 0;
}
for (int i = 0; i < 4; i++)
{
int iEnd = iNumber % 10;
if (iEnd % 2 == 0)
iMulEven *= iEnd, cMask |= 1;
else
iMulOdd *= iEnd, cMask |= 2;
iNumber /= 10;
}
if (cMask == 3)
std::cout << static_cast<double>(iMulEven) / iMulOdd << std::endl;
else if (cMask == 1)
std::cout << "There is no odd digits exists." << iMulEven << std::endl;
else
std::cout << "There is no even digits exists." << iMulOdd << std::endl;
return 0;
} /* end of the 'main' function */