В этой задаче не будет длинного запутанного условия, лишь четкая постановка задачи.
В заданном массиве найти сумму всех положительных элементов S. Найти позиции максимального и минимального элементов, а затем посчитать произведение P всех чисел, лежащих между ними (не включая минимум и максимум). Гарантируется, что в массиве ровно один минимальный и ровно один максимальный элемент. Поскольку числа в ответе могут получиться очень большими - найдите их остаток от деления на 228228227. Не забудьте, что остаток от деления - величина неотрицательная.
Формат ввода
В первой строке задано единственное число N – количество элементов массива (2 ≤ N ≤ 105). Вторая строка содержит N целых чисел - элементы заданного массива (-105 ≤ ai ≤ 105).
Формат вывода
Необходимо вывести два неотрицательных числа: сумму S и произведение P. Поскольку числа в ответе могут получиться очень большими - найдите их остаток от деления на 228228227. Не забудьте, что остаток от деления - величина неотрицательная.
Другие языки программирования и технологии
Напишите программу на любом из языков программирования
"Остаток от деления - величина не отрицательная" - в ПРОГРАММИРОВАНИИ это откровенная ГЛУПОСТЬ.
Остаток от деления ВСЕГДА равен:
остаток = делимое - делитель * частное
В зависимости от правил округления частного при целочисленном делении знак остатка равен либо знаку делимого (округление к нулю), либо знаку делителя (округление к минус бесконечности).
https://ru.wikipedia.org/wiki/Деление_с_остатком#Знак_остатка
А т. к. в разных языках программирования используются РАЗНЫЕ правила округления, то задача - в зависимости от используемого языка - может иметь как минимум ДВА разных решения.
Остаток от деления ВСЕГДА равен:
остаток = делимое - делитель * частное
В зависимости от правил округления частного при целочисленном делении знак остатка равен либо знаку делимого (округление к нулю), либо знаку делителя (округление к минус бесконечности).
https://ru.wikipedia.org/wiki/Деление_с_остатком#Знак_остатка
А т. к. в разных языках программирования используются РАЗНЫЕ правила округления, то задача - в зависимости от используемого языка - может иметь как минимум ДВА разных решения.
Стасик Золотов
Мне просто нужно решение
Да мне-то не жалко, только преподу твоему не понравится :)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
namespace ConsoleApp25
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
List< int > a = new List< int >();
for (int i = 0; i < n; i++)
a.Add(int.Parse(Console.ReadLine()));
int s = (from x in a where x > 0 select x).Sum();
int MinPos = a.IndexOf(a.Min());
int MaxPos = a.IndexOf(a.Max());
BigInteger p = 1;
for (int i = Math.Min(MinPos, MaxPos); i <= Math.Max(MinPos, MaxPos); i++)
p *= a[i];
Console.WriteLine("Sum of positive: {0}", s);
Console.WriteLine("Index of minimal: {0}", MinPos);
Console.WriteLine("Index of maximal: {0}", MaxPos);
Console.WriteLine("Product modulo 228228227: {0}", p%228228227);
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
namespace ConsoleApp25
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
List< int > a = new List< int >();
for (int i = 0; i < n; i++)
a.Add(int.Parse(Console.ReadLine()));
int s = (from x in a where x > 0 select x).Sum();
int MinPos = a.IndexOf(a.Min());
int MaxPos = a.IndexOf(a.Max());
BigInteger p = 1;
for (int i = Math.Min(MinPos, MaxPos); i <= Math.Max(MinPos, MaxPos); i++)
p *= a[i];
Console.WriteLine("Sum of positive: {0}", s);
Console.WriteLine("Index of minimal: {0}", MinPos);
Console.WriteLine("Index of maximal: {0}", MaxPos);
Console.WriteLine("Product modulo 228228227: {0}", p%228228227);
Console.ReadKey();
}
}
}
вот написал я.
дальше что?
дальше что?
Вопрос понятен, задача простая. Сколько платишь?
Стасик Золотов
Всм
Стасик Золотов
Напишешь или нет?
import java.util.*;
import java.io.*;
public class Main {
public static void main(final String... args) {
App app = new App(System.in, System.out);
app.exec();
}
}
class App {
private final long mod = 228228227;
private final InputStream input;
private final OutputStream output;
public App(final InputStream input, final OutputStream output) {
this.input = input;
this.output = output;
}
public void exec() {
try (final PrintStream out = new PrintStream(output)) {
final Scanner scanner = new Scanner(input);
int count = scanner.nextInt();
List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < count; i++) {
numbers.add(scanner.nextInt());
}
long sum = 0, product = 1;
for (Integer number : numbers) {
sum += number;
product *= number;
}
out.print("S = " + sum % mod + ", ");
out.print("P = " + product % mod);
scanner.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
import java.io.*;
public class Main {
public static void main(final String... args) {
App app = new App(System.in, System.out);
app.exec();
}
}
class App {
private final long mod = 228228227;
private final InputStream input;
private final OutputStream output;
public App(final InputStream input, final OutputStream output) {
this.input = input;
this.output = output;
}
public void exec() {
try (final PrintStream out = new PrintStream(output)) {
final Scanner scanner = new Scanner(input);
int count = scanner.nextInt();
List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < count; i++) {
numbers.add(scanner.nextInt());
}
long sum = 0, product = 1;
for (Integer number : numbers) {
sum += number;
product *= number;
}
out.print("S = " + sum % mod + ", ");
out.print("P = " + product % mod);
scanner.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Фанис Зайнетдинов
Введи 2 числа - 2000000000 и 2000000001
Знаю, что большие, но не 100 же чисел вводить.
Проверь теперь свое Р: https://www.wolframalpha.com/input/?i=2000000000+*+2000000001+mod+228228227
Знаю, что большие, но не 100 же чисел вводить.
Проверь теперь свое Р: https://www.wolframalpha.com/input/?i=2000000000+*+2000000001+mod+228228227
Чтоооооо? ты хоть сам понял чё написал?
Похожие вопросы
- Разработайте программу на любом доступном языке программирования вычисляющую наименьшее общее кратное двух чисел...
- Сложно ли будет написать программу если хорошо знаешь язык программирования?
- Составить блок-схему вычислительного процесса и написать программу на любом алгоритмическом языке высокого уровня.
- Помогите написать программу на любом языке программирования
- Какие программы нужны, и какие языки программирования нужно знать для того..
- Как была написана первая программа/язык программирования?
- почему процессор компьютера не может исполнять программы написанные на языке программирования Basic или Pascal
- Какие программы написаны на языках программирования?
- На каком простом языке программирования можно создать такую программу?
- Как создать программу, зная язык программирования?