Надо написать программу на Java. Но не могу понять как. Известны данные о 20 учениках класса: фамилии, имена, отчества, даты рождения (год, номер месяца и число). Определить, есть ли в классе ученики, у которых сегодня день рождения, и если да, то напечатать их имя и фамилию.
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 */