2675,713₈
- 204,551₈
----------------
2471,142₈
Подробности. Вычитание производим "в столбик", начиная с самого правого разряда. Если в разряде уменьшаемое не меньше вычитаемого, выполняем вычитание в привычной десятичной системе. 3₈ - 1₈ = 2₈
Теперь переходим в соседний разряд. Тут уменьшаемое меньше вычитаемого, поэтому нужно "занять" единичку в старшем разряде. В десятичной системе эта единичка превращается в 10, а в восьмеричной - в восемь. 1₈ - 5₈ превратится в (1+8) - 5 = 4₈. Т.е. мы прибавляем к уменьшаемому эти 8, а дальше все считаем снова, как в привычной десятичной системе. 7₈ - 5₈ после "занятия" единицы превратится в
6₈ - 5₈ = 1₈ - тут все, как в делали в самом младшем разряде.
Остальная часть решения трудностей не представляет.
Ответ: 2471,142₈
var prod,i:integer;
begin
prod:=1;
for i:=10 to 99 do
if(i mod 15=0) then prod:=prod*i;
writeln(prod)
end.
#include "iostream"
#include "cstdlib"
#include "ctime"
using namespace std;
void z(int *m, int n, int a, int b){
srand(time(NULL)); for(int i=0;i< n;i++)m[i]=a+rand()%(b-a+1);}
int k(int *m, int n, int a, int b){
int s=0; for(int i=0;i< n;i++)s+=m[i]>=a&&m[i]<=b; return s;}
int main(){
int n,a,b,na,nb; cout<<"n: "; cin>>n; int *m=new int[n];
cout<<"a b: "; cin>>a>>b; z(m,n,a,b);
for(int i=0;i< n;i++)cout<<m[i]<<' '; cout<< endl;
cout<<"number_A number_B: "; cin>>na>>nb; cout<<"k="<< k(m,n,na,nb);
<span>delete []m; cout<<"\nPress Enter for exit\n"; cin.get(); cin.get();}</span>
Вводы и выводы бывают нескольких "видов". Есть простой, к примеру, и с переводом строки. Они различаются тем, как мы будем читать. read(тут должна быть переменная, которую вы считываете). Тут считывается что-то, и затем можно дальше продолжать работать. А readln(тут должна быть переменная, которую вы считываете) уже после считывания переходит на следующую строку. Можно так же подключить файл. Это происходит посредством команд. assign(название текстовой переменной, затем через запятую тут должно быть название файла или путь к нему в кавычках). Затем надо сделать reset(название переменной, с которй связан был ввод); Это простые примеры. Теперь вывод. Тут в принципе, то же самое. write(переменная или текст в кавычках) просто выводит после места, где мы на вводе\выводе остановились, пишет то, что нужно. А есть writeln(). он делает то же самое, затем переходит на следующую строку. Обьясним в примерах. Различие write и writeln
Есть два куска программы.
a:=10;
b:=20;
write(a);
write(b);
И второй.
a:=10;
b:=20;
writeln(a);
writeln(b);
Они различаются лишь четырьмя буквами, но вывод первой будет
1020
А второй
10
20
Что бы, кстати, при первом способе цифры не слипались, можно воспользоваться текстом. Изменим строчку
write(a); на строчку write(a,' '); и тогда вывод будет таким
10 20
Файловый вывод подключается так же. Однако есть различие. Там надо использовать вместо reset - rewrite и все. Ну и естественно, не путаем две переменные ввода и вывода. Вот простые примеры