Объяснение:
Последовательность дней недели периодична с периодом 7, поэтому номер дня недели можно найти, взяв остаток от деления: (номер дня недели первого числа + сколько Такое решение будет давать верный ответ для всех дней недели кроме воскресенья: для воскресений будет выведен ноль (а не 7). Решить это можно, перенумеровав все номера дней недели с нуля, а не с единицы.
m - 1 – номер дня недели первого числа месяца (считая с 0)
n - 1 – пройдёт от первого числа
(m + n - 2) mod 7 – номер нужного дня недели (считая с 0)
(m + n - 2) mod 7 + 1 – ответ.
Программа (PascalABC.NET):
begin
var n := ReadInteger;
var m := ReadInteger;
print((m + n - 2) mod 7 + 1)
end.
Пример ввода:
7
7
Пример вывода:
6
(Действительно, 1 апреля 2018 года – воскресенье, а сегодня, 7 апреля – суббота)
#include <vector>
#include <boost/algorithm/string.hpp>
using namespace std;
void reverseWords(string& inputStr, vector<string>& output){
vector<string> input;
boost::split(input, inputStr, [](char c){return c == ' ';});
for(auto& word : input){
reverse(word.begin(), word.end());
output.push_back(word);
}
}
int main(){
string inputStr;
vector<string> output;
cout << "enter some string: " << endl;
getline(cin, inputStr);
cout << endl;
reverseWords(inputStr, output);
cout << "result: " << endl;
for(auto const& word : output){
cout << word << ' ';
}
cout << endl;
return 0;
}