Форум программистов, компьютерный форум CyberForum.ru

Посчитать количество пустых клеток шахматной доски, которые не бьются ни одним ферзем - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти количество повторяющихся в массиве цифр http://www.cyberforum.ru/cpp-beginners/thread177084.html
Помогите у меня задача:"Мади подарили новый блокнот. Ему очень понравился подарок, но единственное, что его смутило, это то, что страницы блокнота не пронумированны. Мади решил пронумеровать страницы своего блокнота от 1 до N. Так как Мади отличный программист, он заранее посчитал сколько раз ему придется написать каждую цифру. А вам слабо? Формат входных данных Число N (1<=N<1000000000)...
C++ Теория массового обслуживания задание: Пусть имеется обслуживающая система из n обслуживающих аппара-тов. Работа этой системы разбита на такты. В течение одного такта может одна заявка стать в очередь и одна заявка приступить к обслуживанию, (разумеется, если аппарат свободен). Вероятность заявки поступить на обслуживание Р(A), вероятность обслужить заявку P(B), вероятность заявки покинуть очередь после Т... http://www.cyberforum.ru/cpp-beginners/thread177073.html
C++ подделать программку
ребят помогите,есть программа написанная,ее нужно немного изменить на мой вариант вот есть рабочая 6-го варианта,нужно подправить ее по 3-ий вариант, заранее благодарен #include <iostream.h> #include <conio.h> #include <graphics.h> #include <math.h> #define PATHDRIVER "C:\\temp\\lng\\bc\\bgi\\"
C++ Найти количество столбцов матрицы, которые не имеют ни одного нулевого элемента
дано целочисельную прямокутную матрицу.Найти: 1)Количество столбцов которые неимеют ниодново нульового елемента. 2)номер рядка в котором находитса найдолшая последовательность одинакових елементов.
C++ Найти количество элементов, расположенных после последнего максимального элемента http://www.cyberforum.ru/cpp-beginners/thread177011.html
Minmax17. Дано целое число N и набор из N целых чисел. Найти количество элементов, расположенных после последнего максимального элемента.
C++ Разделить число на составляющие и найти искомую цифру Программа, которая разделяет число на состовляющие и находит искомую цифру, вот, то, что получилось: # include <stdio.h> void main() { int c,p,o,z=0; printf("cifra="); подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.10.2010, 21:30     Посчитать количество пустых клеток шахматной доски, которые не бьются ни одним ферзем
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>
#include <stdlib.h>
 
int isUnique(size_t** arr, size_t max) {
  for(size_t i = 0; i < max; ++i)
    if((arr[i][0] == arr[max][0]) &&
       (arr[i][1] == arr[max][1]))
      return 0;
 
  return 1;
}
 
int isFree(size_t** arr, size_t max, size_t row, size_t col) {
  for(size_t i = 0; i < max; ++i) {
    if((arr[i][0] == row) || (arr[i][1] == col))
      return 0;
    else if((abs(((int) row) - ((int) arr[i][0]))) ==
        (abs(((int) col) - ((int) arr[i][1]))))
      return 0;
  }
  return 1;
}
 
int main(void) {
  
  size_t N, K;
  size_t** queens;
  size_t result = 0;
  FILE* f;
 
  if((f = fopen("input.txt", "r")) == NULL) {
    perror("Can't open file for input");
    return 1;
  }
 
  fscanf(f, "%u %u", &N, &K);
 
  if(ferror(f)) {
    perror("Can't read from file");
    return 1;
  }
 
  queens = (size_t **) calloc(K, sizeof(size_t *));
 
  if(!queens) {
    perror("Can't allocate memory");
    return 1;
  }
 
  for(size_t i = 0; i < K; ++i) {
     
    queens[i] = (size_t *) calloc(2, sizeof(size_t));
    
    if(!queens[i]) {
      perror("Can't allocate memory");
      return 1;
    }
  }
 
  for(size_t i = 0; i < K; ++i) {
    fscanf(f, "%u %u", queens[i], queens[i] + 1);
 
    if(!isUnique(queens, i)) {
      perror("Queens must be unique");
      return 1;
    }
 
    if(ferror(f)) {
      perror("Can't read from file");
      return 1;
    }
  }
 
  for(size_t i = 1; i <= N; ++i) {
    for(size_t j = 1; j <= N; ++j) {
      if(isFree(queens, K, i, j)) {
    ++result;
      }
    }
  }
 
  printf("Result = %u\n", result);
 
  for(size_t i = 0; i < K; ++i)
    free(queens[i]);
 
  free(queens);
 
  fclose(f);
 
  return 0;
}
Цитата Сообщение от odip Посмотреть сообщение
Сдается мне что это олимпиадная задача
Максимум - школьного уровня
 
Текущее время: 16:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru