veronica1344
?>

Дан целочисленный массив размера n (вводится с клавиатуры), не содержащий одинаковых чисел. проверить, образуют ли его элементы арифметическую прогрессию. если образуют, то вывести разность прогрессии, если нет вывести 0 на языке c#

Информатика

Ответы

Узлиян Фурсов1488
Using System;
public class Test{
  public static void Main(){
    Console.Write("Количество элементов в массиве: ");
    int max = Convert.ToInt32(Console.ReadLine(), 10);
    int[] a = new int[max];
    int buff;
    for(int i = 0; i < max; ++i){
      bool flag = false;
      do{
        Console.Write("a[{0}] = ", i);
        buff = Convert.ToInt32(Console.ReadLine(), 10);
        for(int j = 0; j < i; ++j)
          if(a[j] == buff){
            flag = true;
            break;
          }
        if(flag)
          Console.WriteLine("Такой элемент уже встречался! Повторите ввод!");
        else
          a[i] = buff;
      } while(flag);
    }
    Console.Clear();
    Console.WriteLine("Исходный массив:");
    for(int i = 0; i < max; ++i)
      Console.Write("{0} ", a[i]);
    Console.WriteLine();Console.WriteLine();
    bool k = false;
    for(int i = 2; i < max; ++i)
    if((a[i] - a[i-1]) != (a[i-1] - a[i-2])){
      k = true;
      break;
    }
    if(k) Console.WriteLine("Это НЕ арифметическая прогрессия");
    else Console.WriteLine("Это арифметическая прогрессия c разностью {0}", a[1]-a[0]);
  }
}
Александрович Василий

ответ: 7

Объяснение:

Данная программа проверяет значения ячеек массива от Dat[1] до Dat[11], если значение больше 22, тогда к переменной m прибавляется 1.

Изначально m = 0

Dat[1] := 20; > 22 нет, переходим к следующему шагу.

Dat[2] := 25; > 22 да, к m прибавляем 1, m = 0 + 1 = 1

Dat[3] := 19;  > 22 нет, переходим к следующему шагу.

Dat[4] := 25; > 22 да, к m прибавляем 1, m = 1 + 1 = 2

Dat[5] := 26;  > 22 да, к m прибавляем 1, m = 2 + 1 = 3

Dat[6] := 22;  > 22 нет, переходим к следующему шагу.

Dat[7] := 24;  > 22 да, к m прибавляем 1, m = 3 + 1 = 4

Dat[8] := 28;  > 22 да, к m прибавляем 1, m = 4 + 1 = 5

Dat[9] := 26;  > 22 да, к m прибавляем 1, m = 5 + 1 = 6

Dat[10] := 21;  > 22 нет, переходим к следующему шагу.

Dat[11] := 27; > 22 да, к m прибавляем 1, m = 6 + 1 = 7

Строка writeln(m); означает, что программа должна вывести на экран значение переменной m

Значит в ре­зуль­та­те ра­бо­ты про­грам­мы будет на­пе­ча­та­но: 7

set907
В наихудшем случае, последнее новогоднее число - 11111111.

#include <iostream>

bool isNewYearNumber(int n);
int sumDigits(int num);
bool hasZero(int n);

int main() {
  const int LASTNEWYEARNUMBER = 11111111;
  long long sum = 0;
  for(int i = 0; i <= LASTNEWYEARNUMBER; i++)
    if ( isNewYearNumber(i) )
      sum += i;
  std::cout << "Сумма всех новогодних чисел: " << sum << '\n';
  return 0;
}

bool isNewYearNumber(int n)
{
  if ( !( hasZero(n) ) && sumDigits(n) == 8)
    return true;
  else
    return false;
}

int sumDigits(int num)
{
  int sum = 0;
  while ( num > 0 ) {
    sum += num % 10;
    num /= 10;
  }
  return sum;
}

bool hasZero(int n)
{
  if (n < 0)
    n = -1 * n;
  if (n % 10 == 0)
    return true;
  else if (n / 10 > 0)
     hasZero(n / 10);
  else
    return false;
}

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дан целочисленный массив размера n (вводится с клавиатуры), не содержащий одинаковых чисел. проверить, образуют ли его элементы арифметическую прогрессию. если образуют, то вывести разность прогрессии, если нет вывести 0 на языке c#
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ecocheminnov437
tarhan1221
tatry2005
antoska391
sohrokova809
Татьяна902
gelena03
Stepanovich_Makarov
verkop9
ПетровичЖивотовская1245
Александр Сергей
Railyan
uvarovig
gumirovane2294
menesmir