Text: |
ФІО = 4курсник
Запитання:Завдання до ООП:
1. Для заданого натурального числа n повертати результат "істина", якщо n! може бути записане у вигляді добутку трьої послідовних цілих чисел та "хибність" у супротивному випадку.
2. Для заданої дійсної матриці А розмірності m x n одержати A^T x A.
====================================
ANSWER ====================================
/*
1. Для заданого натурального числа n повертати результат "істина",
якщо n! може бути записане у вигляді добутку трьох послідовних цілих чисел та
"хибність" у супротивному випадку.
*/
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
#pragma argsused
using namespace std;
long long factorial(long long n)
{// метод рахує факторіал "n"
if (n == 0 || n == 1 ) return 1; // тут немає чого і разувати
if (n < 0 ) return -1 ;// помилка. Не рахуємо. Вилітаємо.
long long i = 1; // ітератор
long long result = 1; // аккумулятор
for ( ; i <= n ; i++)
{
result *= i; // аналог result = result * i;
}
return result;
}
bool check_f(long long n)
{
// n повертати результат "істина",
// якщо n! може бути записане у вигляді добутку трьох
// послідовних цілих чисел та "хибність" у супротивному випадку
// IMHO: дурацьке завдання якесь... БО, цей метод буде повертати результат TRUE для
// чисел 3 та 4. Для інших ні... це можна так і тупо вбити, посилаючись на такі розмірковування.
// Бо, факторіал n за означенням це сума добутків від 1 до n включно.
// тобто n! = 1 * 2 * 3 * 4 * ... * n;
/* Лінивий варіант рішення
return ( n == 3 || n == 4 ? true : false);
// аналог if (n == 3 || n == 4) return true; else false;
*/
// нелінивий варіант рішення
if (n < 3)
{ // якщо менше ніж 3 числа, то немає і чого перевіряти
return false;
}
// якщо більше, то спробуємо перевірити послідовність
long long f_result = factorial(n); // результуючий файкторіал цікавлячого числа, рахується один раз
for (long long i = 1 ; i <= n - 2 ; i++) // тут (n - 2), що б не залізли за межі цікавлячого
{// спробуємо перебрати
long long result = 1; // аккумулятор
for (long long j = i ; j < i + 3 ; j++)
{// в кожній ітій ітерації рахуємо добуток чисел i,i+1 та i+2
result *=j;
}
if (result == f_result)
{// ну нарешті, знайшли - вилітаємо
return true;
}
}
// нажаль не знайшли.... ойойой...
return false;
}
int main(int argc, char* argv[])
{
for (long long i = 1 ; i < 10 ; i++)
{
cout<<" f ( "<<i<<" ) = "<<factorial(i)<<" : "<<(check_f(i)?"true":"false")<<endl;
/* аналог
cout<<" f ( "<<i<<" ) = ";
if (check_f(i))
{
cout<<"true"<<endl;
}
else
{
cout<<"false"<<endl;
}
*/
}
cout<<endl<<endl;
long long n;
cout<<"Enter N : ";
cin>>n;
cout<<" f ( "<<n<<" ) = "<<factorial(n)<<" : "<<(check_f(n)?"true":"false")<<endl;
getch();
return 0;
}
//---------------------------------------------------------------------------
END of ANSWER ====================================
ANSWER ====================================
Що стосується другого завдання: легко відповість проф. Гугл
https://www.google.com.ua/search?client=opera&q=матрица+на+транспонированную+C%2B%2B&sourceid=opera&ie=UTF-8&oe=UTF-8#q=%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5+%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B+%D0%BD%D0%B0+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BF%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%83%D1%8E+c%2B%2B
Виправлення по мелочі і:
http://forum.developing.ru/showthread.php/24851-Перемножение-транспонирование-матриц
END of ANSWER ====================================
ANSWER ====================================
Hello!
Do you want to become the best SEO specialist and link builder or do you want to outpace your competitors?
Premium base for XRumer
$119/one-time
Get access to our premium database, which is updated monthly! The database contains only those resources from which you will receive active links - from profiles and postings, as well as a huge collection of contact forms. Free database updates. There is also the possibility of a one-time purchase, without updating the databases, for $38.
Fresh base for XRumer
$94/one-time
Get access to our fresh database, updated monthly! The database includes active links from forums, guest books, blogs, etc., as well as profiles and activations. Free database updates. There is also the possibility of a one-time purchase, without updating the databases, for $25.
GSA Search Engine Ranker fresh verified link list
$119/one-time
Get access to our fresh database, updated monthly! The fresh database includes verified and identified links, divided by engine. Free database updates. There is also the possibility of a one-time purchase, without updating the databases, for $38.
GSA Search Engine Ranker activation key
$65
With GSA Search Engine Ranker, you'll never have to worry about backlinks again. The software creates backlinks for you 24 hours a day, 7 days a week. By purchasing GSA Search Engine Ranker from us, you get a quality product at a competitive price, saving your resources.
To contact us write to Telegram: https://t.me/DropDeadStudio
END of ANSWER ====================================
|