1)Даны натуральное число n, действительные числа a1, …, an. Вычислить: 2(a1 + .. + an)2 2) Дано натуральное число n (n<10000). Верно ли что это число содержит три одинаковые цифры?(например, 6766, 4555, 888 3) По каналу связи передается последовательность положительных целых чисел X1, X2, …; все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается в виде отдельной текстовой строки, содержащей десятичную запись числа. Признаком конца передаваемой последовательности является число 0. Участок последовательности от элемента XT до элемента XT+N называется подъемом, если на этом участке каждое следующее число больше предыдущего. Высотой подъема называется разность XT+N - XT. Напишите эффективную программу, которая вычисляет наибольшую высоту среди всех подъемов последовательности. Если в последовательности нет ни одного подъема, программа выдает 0. Программа должна напечатать отчет по следующей форме: Получено ... чисел Наибольшая высота подъема: ... Размер памяти, которую использует Ваша программа, не должен зависеть от длины переданной последовательности чисел. P.S я буду очень благодарен, если поможете сделать хотя бы одну:blush2:
это остались задачи, которые у меня не получается сделать, поэтому я и попросил помощи Console.WriteLine ("ne ebu kak delat' eti 3 zadachi"); Console.ReadKey();
я так понял что a[n] это массив чисел, так ты создай переменную sum, и через цикл перебери каждый элемент добавляя его в sum, и потом 2 * sum * 2
2) Dictionary<char, int> count = new Dictionary<char, int>(); string s = n.ToString(); foreach(char c in s) count[c]++; foreach(var v in count){ if(v.Value >= 3){ Console.WriteLine($"Есть 3 или больше {v.Key}"); } }
3) StreamReader sr = ...; List<int> ints = new List<int>(); for(string s = sr.ReadLine(); s != null; s = sr.ReadLine()){ if(s == "0"){ break; } ints.Add(Convert.ToInt32(s, 2)); } Числа получил в переменную ints, дальше сам
Program G; Uses Crt; Var NumS: Array [1..10] of byte; n: integer; count, i, k, equal, truth: byte; Begin ClrScr; Truth:=0; Writeln('Введите число N (меньше или равное 9999).'); Repeat Readln(N); If N>9999 then Writeln('Введено неверное число. Повторите ввод.'); Until N<=9999; Count:=0; While N>0 do Begin Inc(Count); NumS[Count]:=N mod 10; N:=N div 10; End; For i:=1 to Count do Begin Equal:=0; For k:=i+1 to Count do If NumS=NumS[k] then Inc(Equal); If Equal=2 then Truth:=1; End; If Truth=1 then Writeln('В числе совпадает три разряда.') Else Writeln('В числе совпадает менее/более трёх разрядов.'); Readln; End.
var a,s:real; i:integer; begin write ('Введи натуральное число n = '); readln (n); s:=0; for i:= 1 to n do begin readln (a); s:=s+a; end; write ('S= ',s); end.
import sys save_stdin = sys.stdin sys.stdin = open("in/38.in") count = 0 maxHeight = 0 curHeight = 0 xPrev = 1001 while True: x = int(input()) if x == 0: break count += 1 if x > xPrev: curHeight = curHeight + x - xPrev if curHeight > maxHeight: maxHeight = curHeight else: curHeight = 0 xPrev = x print('Получено %d чисел' % (count)); print('Наибольшая высота подъема', maxHeight); sys.stdin = save_stdin
#include int main() { int input = 0, start = 0, before = 0, k = 0; do { scanf("%d", &input); if (input == 0) { printf("Получено %d чисел\nНаибольшая высота подъёма: %d", k, before-start); break; } k++; if (input > before) { before = input; } else { start = input; before = input; } } while (true); return 0; }
import sys save_stdin = sys.stdin sys.stdin = open("in/37.in") count = 0 max6 = 0; maX = 0; max2 = 0; max3 = 0 while True: x = int(input()) if x == 0: break; count += 1 if x % 6 == 0 and x > max6: if max6 > maX: maX = max6 max6 = x else: if x > maX: maX = x if x % 2 == 0 and x > max2: max2 = x else: if x % 3 == 0 and x > max3: max3 = x C0 = int(input()) C = max(max6*maX, max2*max3) print('Получено чисел: ', count) print('Полученное контрольное значение: ', C0) print('Вычисленное контрольное значение: ', C) if C == C0: print('Контроль пройден.') else: print('Контроль не пройден.'); sys.stdin = save_stdin