Pascal: var a:array [1..30] of integer; i:integer; p:longint; begin p:=1; randomize; a[1]:=random(21)+50; for i:=2 to 29 do a[i]:=random(100); a[30]:=random(21)+50; for i:=1 to 30 do write (a[i],' '); writeln; for i:=1 to 30 do if (a[i] in [10..99]) and (a[i] mod 2 = 0) and ((a[i] div 10) in [5..7]) then p:=p*a[i]; writeln ('Proizvedenie: ',p); readln; end.
C++: #include <iostream> #include <ctime> #include <cstdlib> using namespace std;
int main() { int a[30],i; unsigned long long p = 1; srand (time(NULL)); a[0] = rand()%70+50; for (i = 1; i<29; i++) a[i] = rand()%100; a[29] = rand()%7+50; for (i = 0; i<30; i++) { cout <<a[i] <<" "; if ((a[i]/10==5 || a[i]/10==6 || a[i]/10==7) && (a[i]>9 && a[i]<100) && a[i]%2==0) p*=a[i]; } cout <<endl; cout <<"Proizvedenie: " <<p <<endl; return 0; }
Для решения подобных заданий, нужно перевести данные цифры в маске и узле в двоичную с.с. и сделать поразрядную коньюнкцию(логическое умножение). 255(10) равно 111 111 11(2) значит, любое число при умножении на это, даст себя же, т.к. при умножении 1 на 0 будет 0, значит первые 2 цифры остануться теми же 224.23, а вот 240 и 251 нужно перевести в двоичнцю с.с. и посчитать. 240(10) это 11 110 000(2), а 251(10) равно 11 111 011, вместе они дадут 11 110 000(2), переводим это число в 10 с.с. это будет 240. При умножении на 0 будет 0,поэтому в конце 0 остаеться. В итоге у нас получилось:224.23.240.0 ответ:DFBH
1)int sum=0;
for(int i=50; i<=100; i++)
sum+=i;
2)
int i=50;
while ( i<=100){
sum+=i;
i++;
}
C++
Поставь корону )