Объяснение:
#include "pch.h"
#include <stdio.h>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int num, k=0;
string str;
cout << "Введи многозначное число" << endl;
cin >> num;
while (num != 0)
{
k += 1;
num /= 10;
}
if(k==1)
{
cout << k << " цифра" << endl;
}
else if (k >= 2 && k <= 4) {
cout << k << " цифры" << endl;
}
else {
cout << k << " цифр" << endl;
}
system("pause");
return 0;
}
1. Вычисляем значение цифр:
Например, в таблице дано, что 0000 = 4, соответственно каждый ноль означает единицу
1 = 0
2 = 0
3 = 0
5 = 0
6 = 1
7 = 0
8 = 2
9 = 1
0 = 1
2. Находим значения неизвестных цифр:
6855 = 1 + 2 + 0 + 0 = 3
9881 = 1 + 2 + 2 + 1 = 5
6591 = 1 + 0 + 1 + 0 = 2
3. Решаем примеры (если учесть, что цифры из предыдущего номера идут по порядку):
675 ÷ 3 - 215 = 10
475 × 5 ÷ 5 - 420 = 55
(2 - 1) × 83 = 83
4. Теперь нужно разобраться с цифрами, которые идут после примеров (три, один, один):
Тут, как я думаю, есть два варианта решения. Первый заключается в том, что к окончаниям цифр, которые получились в 3 номере, нужно добавить те цифры, которые написаны, то есть: 10 - 103, 55 - 551, 83 - 831.
На сейфе 12 позиций (цифр), то есть один круг равняется 12, соответственно:
103 ÷ 12 = 8 с остатком 7
551 ÷ 12 = 45 с остатком 11
831 ÷ 12 = 69 с остатком 3
Я считаю, что данное решение не правильное, так как крутить 69 раз не кажется мне разумным
Второе решение - окончания цифр, которые получились в 3 номере, заменяются на три, один, один: 10 - 13, 55 - 51, 83 - 81.
Делим на 12 (сейф):
13 ÷ 12 = 1 с остатком 1
51 ÷ 12 = 4 с остатком 3
81 ÷ 12 = 6 с остатком 9
В данном решении необходимо сделать максимум 6 оборотов, что кажется мне наиболее правильным.
ответ: 1 оборот по часовой, останавливается на цифре 1; 4 оборота против часовой, останавливается на 3; 6 оборотов по часовой, останавливается на 9.
Внимание! Не факт, что данное решение является правильным.
Поделитесь своими знаниями, ответьте на вопрос:
Составьте блок-схему и программу на языке vba, которая вычисляет наибольший общий делитель двух целых чисел желательно через цикл for и что бы работало с отрицательными значениями)
' GCD - функция, которая принимает два числа, для которых нужно найти НОД
' К посту приложена фотография с блок-схемой
Function GCD(m As Integer, n As Integer) As Integer
m = Abs(m)
n = Abs(n)
For i = 1 To n * m
If m Mod i = 0 And n Mod i = 0 Then
GCD = i
End If
Next
End Function