лол вроде же несложная задачка
Объяснение:
#include <bits/stdc++.h>
using namespace std;
int main () {
int n,m;
cin >> n >> m;
vector <int> a(n), p(n, 0);
for (int i = 0; i < n; i++)
cin >> a[i];
if (a[0] < a[1]) p[1] = 1;
for (int i = 2; i < n; i++) {
if (a[i - 1] < a[i]) p[i] = 1;
p[i] += p[i-1];
}
for (int i = 0; i < m; i++) {
int l, r;
cin >> l >> r;
cout << p[r - 1] - p[l - 1] << endl;
}
}
Вы немного не понимаете, что такое локальные переменные.
Давайте объясню.
Локальными называются переменные, объявленные внутри функции и доступные только ей самой. Программный код за пределами функции к ним доступа не имеет. В этом и ошибка, Вы вызываете функцию differ() и применяете переменные, которые находятся в count_number() и suma_number(). Локальные переменные скрыты от других функций.
Чтобы избежать ошибки, как вариант, можно создать глобальную переменную:
1. Пишем перед функцией глоб. переменную
suma = 0
def suma_number(number):
pass
2. Присваиваем значение глобальной переменной внутри функции с ключевое слово global:
suma = 0
def suma_number(number):
global suma
pass
Полная программа:
number = int(input('Введите число: '))
suma = 0
def suma_number(number):
global suma
while number > 0:
digit = number % 10
suma = suma + digit
number = number // 10
print('\nСумма цифр:', suma)
suma_number(number)
digitcount = 0
def count_number(number):
global digitcount
countnumber = number
while countnumber > 0:
digitcount += 1
countnumber = countnumber // 10
print('Кол-во цифр в числе:', digitcount)
count_number(number)
def differ(suma, digitcount):
diff = suma - digitcount
print('Разность суммы и кол-ва цифр:', diff)
differ(suma, digitcount)
Можно обойтись и без глоб. переменных:
Когда Вы вызываете функцию differ(), не используйте локальные переменные из других функций, просто вызовите эти функции:
differ(suma_number(number), count_number(number))
Кстати, если задуматься, код можно сделать проще:
def suma_number(a):
return sum(map(int, list(a)))
def count_number(a):
return len(a)
def differ(a, b):
return a - b
n = input('Введите число: ')
print('Сумма цифр:', suma_number(n))
print('Кол-во цифр в числе:', count_number(n))
print('Разность суммы и кол-ва цифр:', differ(suma_number(n), count_number(n)))
Хотя можно и совсем "извращение" сделать без функций в 2 строчки..
n = input('Введите число: ')
print('Сумма цифр:', sum(map(int, list(n))), '\nКол-во цифр в числе:', len(n), '\nРазность суммы и кол-ва цифр:', sum(map(int, list(n))) - len(n))
Это так, пища для размышления.
Унарная система счисления. Или единичная. В этой системе счисления есть только один символ.
Сам по себе он выражает 1. Хочешь получить число побольше? Нарисуй столько символов, сколько раз надо прибавить 1 для получения нужного числа.
Ты её используешь для счёта на пальцах.