Задается натуральное число q равное площади некоторого прямоугольника. напишите программу, определяющую количество прямоугольников имеющих площадь q, стороны которых выражены натуральными числами. на с++, с цикла с предусловием или постусловием.
int main() { setlocale(LC_ALL, "RUS"); //Для русского языка в консоли int a,b,//a,b - стороны q, //q - площадь end, //end - выход из программы num; //num - количество подходящих прямоугльников cout << "Введите площадь:" << endl; cin>>q; end=0; num=0; while (end==0) { cout <<"Введите стороны a,b прямоугольника. 0, чтобы выйти"<<endl; cin>>a>>b; if (a<=0 || b<=0) { end=1; } else { if (a*b==q) { num++; } } } cout <<"Среди введенных прямоугольников площадь "<<q<<" имели " <<num <<" штук"<<endl; return 0; }
1) procedure F (n:integer); 2) begin 3) if n > 2 then begin 4) writeln (n); 5) F (n-3); 6) F (n-4) 7) end 8) end;
-первый вызов- со входным параметром n=10 -в строке 3 проверяется, что n больше двух, -так как n действительно больше двух, то выполняются три следующие строки № 4,5,6 (а строка 7 -это указатель конца блока, выполняемого при истинности проверки) -строка 4 печатает значение n, то есть 10 -строка 5 вызывает этот алгоритм вновь, со входным параметром 7 -строка 6 опять вызывает алгоритм, со входным параметром 6 И в каждом вызове будут ещё два вызова, со входными параметрами на три и четыре меньше, чем был И так далее, каждый вызов будет вновь вызывать алгоритм, и печатать n до тех пор, пока n будет больше двух.
итак, получим ветвление вызовов, и вот значение n в каждом из них: 10 7 6 4 3 3 2 1 0 0 -1 0 -1
но, не все из этих n будут напечатаны, а только те, которые больше двух. если по порядку, то вот что будет напечатано: 10 7 4 3 6 3
1. Определим размер алфавита, т.е. количество используемых символов. 26*2 латинских букв т.к. используются как строчные, так и прописные + 10 десятичных цифр + 6 специальных символов = 68 символа 2. Чтобы закодировать 68 разных символов нужно (2^6<68<2^7) 7 бит т.к. 6 не хватит (смотрим на степень двойки) 3. В коде 9 символов, каждый символ занимает 6 бит. Всего потребуется 7×9=63 бит. Поскольку код занимает целое число байт, переводит 54 бит в байты. 63/8 = 7,875 ≈ 8 байт. 4. 8 байт это один один пароль, а на 100 паролей ⇒ 8*100=800 байт
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS"); //Для русского языка в консоли
int a,b,//a,b - стороны
q, //q - площадь
end, //end - выход из программы
num; //num - количество подходящих прямоугльников
cout << "Введите площадь:" << endl;
cin>>q;
end=0;
num=0;
while (end==0)
{
cout <<"Введите стороны a,b прямоугольника. 0, чтобы выйти"<<endl;
cin>>a>>b;
if (a<=0 || b<=0)
{
end=1;
}
else
{
if (a*b==q)
{
num++;
}
}
}
cout <<"Среди введенных прямоугольников площадь "<<q<<" имели " <<num <<" штук"<<endl;
return 0;
}