На рисунке – схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города А в город Ж?
Всего дней недели 7. Значит если взять день с заданным номером и поделить его на 7 (целочисленно), то получим номер недели, а остаток от деления, соответственно даст день недели: 1- понедельник (так как год начался с понедельника), 2 - вторник, ..., 6 - суббота, 0 - воскресенье (ноль потому что 7-й день делим на 7 - остаток равен 0). Соответственно, чтоб проверить день на предмет не выходной ли это - надо вычислить остаток от деления на 7 и сравнить с субботой и воскресеньем (с 6 и с 0).
Можно немного оптимизировать, чтоб обойтись одним сравнением вместо двух. Для этого надо "сдвинуть" все дни так чтобы понедельник был 0, вторник - 1,..., суббота - 5, воскресенье - 6. Для этого вычесть из номера дня единицу, а потом уже брать остаток от деления. После этого его можно просто сравнивать на больше или равно 5.
Чтобы проверить день на предмет праздника надо вычислить последнюю цифру номера дня (в десятичной системе счисления), то есть посчитать остаток от деления на 10 и сравнить с нулём.
Пример функции на С, которая возвращает 1 если выходить на работу в заданный день надо и 0 если не надо:
int need_to_work (int day_number) { /* сначала разберемся с праздником */ if ((day_number % 10) == 0) { return 0; // праздник - работать не надо } /* "сдвигаем" номер дня как описывал выше */ day_number = day_number - 1; // можно day_number--; /* проверка на выходные */ if ((day_number % 7) >= 5) { return 0; // выходной - работать не надо } /* все дни, которые не попали в предыдущие условия - рабочие */ return 1; }
Можно немного оптимизировать, чтоб обойтись одним сравнением вместо двух. Для этого надо "сдвинуть" все дни так чтобы понедельник был 0, вторник - 1,..., суббота - 5, воскресенье - 6. Для этого вычесть из номера дня единицу, а потом уже брать остаток от деления. После этого его можно просто сравнивать на больше или равно 5.
Чтобы проверить день на предмет праздника надо вычислить последнюю цифру номера дня (в десятичной системе счисления), то есть посчитать остаток от деления на 10 и сравнить с нулём.
Пример функции на С, которая возвращает 1 если выходить на работу в заданный день надо и 0 если не надо:
int need_to_work (int day_number)
{
/* сначала разберемся с праздником */
if ((day_number % 10) == 0) {
return 0; // праздник - работать не надо
}
/* "сдвигаем" номер дня как описывал выше */
day_number = day_number - 1; // можно day_number--;
/* проверка на выходные */
if ((day_number % 7) >= 5) {
return 0; // выходной - работать не надо
}
/* все дни, которые не попали в предыдущие условия - рабочие */
return 1;
}
Відповідь:
#include <iostream>
using namespace std;
const int size = 10;
void cinarr(int *arr,const int size){
int counter = 1;
for(int i = 0; i < size; i++){
cout << "Введите " << counter << " елемент массива: ";
cin >> arr[i];
counter++;
}
}
void printarr(int *arr, const int size){
for(int i = 0; i < size; i++){
cout << arr[i] << " ";
}
}
int expression(int *arr,const int size,int number){
int counternumber = 0;
for(int i = 0; i < size; i++){
if(number == arr[i]){
counternumber++;
}
}
return counternumber;
}
int main(){
setlocale(LC_ALL , "Rus");
int number;
cout << "Введите число которое будем искать: ";
cin >> number;
int *arr = new int [size];
cinarr(arr,size);
printarr(arr,size);
cout << "\nТаких чисел в массиве: " << expression(arr,size,number) << endl;;
delete [] arr;
return 0;
}
Пояснення: