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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
R1ck
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 5
#1

Игра в числа [язык C] - C++

12.07.2009, 12:56. Просмотров 1384. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста решить следующую задачу:

Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб.

Вася очень любит играть в числа. Для этой игры нужна колода из N различных целых чисел от 1 до N. Эдик (который тоже очень любит эту игру) только что достал новую колоду. Вася говорит, что в колоде недостаёт ровно двух чисел. Зная N (количество чисел, которое должно быть в колоде) и S (сумму имеющихся чисел), определите, не ошибся ли Вася, и если не ошибся, предложите, каких именно чисел недостаёт.

В первой строке входных данных находятся два целых числа: N (3 ≤ N ≤ 10) и S (от нуля до суммы чисел полной колоды). Если могли пропасть ровно два числа, в первой строке напишите "yes", во второй строке приведите возможный вариант - два числа через пробел. Если Вася ошибся, в единственной строке напишите "no".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2009, 12:56     Игра в числа [язык C]
Посмотрите здесь:

Программа которая складывает 2 числа.Числа вбиты в программу заранее. Не получается. Плохо знаю этот язык - C++
Помогите пожалуйста(((

игра два числа - C++
Помогите, пожалуйста, найти ошибки. Игрок должен угадать два числа "а" и "b", задуманных программой. Игрок задает число и получает один...

Задача.Игра в числа - C++
Вася очень любит играть в числа. Для этой игры нужна колода из N различных целых чисел от 1 до N. Эдик(который тоже очень любит эту игру)...

написать программу для прверки простого числа. язык программировние С - C++
Дано целое число, не превосходящее 2^32=4294967296. Написать программу для проверки того, является ли данное число простым. ...

Игра слов, игра Scrabble - C++
Задание: Создать программу для решения задачи построения слова из некоторого множества букв (игра Scrabble) используя алгоритмы поиска в...

Язык - C++
Подскажите как сделать чтоб тот текст который я ввожу в программу был русским? я в мэйн подключила setlocale(LC_ALL,"rus"); , то что я...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
12.07.2009, 16:34     Игра в числа [язык C] #2
во второй строке приведите возможный вариант - два числа через пробел
а остальные куда девать? или не интересуют?

Добавлено через 14 минут 37 секунд
За оптимальность не ручаюсь можно ещё подумать, тести.

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
#define S_MAX   55  // Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*Г*Гї ñóììГ* ïðè N=10
 
void main()
{
  int n,s, Smax=0, re, temp, sum;
  int first=1, second=2;
   printf(" Write N: ");scanf("%i",&n);
   printf(" Write S: ");scanf("%i",&s);
 //  printf("\n  N=%i, S=%i", n, s); 
  
  if (n>=3&&n<=10&&s>=0&&s<=S_MAX)    // ïðîâåðêГ* âõîäГ*ûõ Г¤Г*Г*Г*ûõ
  {
    temp=n;
    while(temp>0)
    {
      //printf("\nt:%i",temp);
      Smax+=temp;             // Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*Г*Гї ñóììГ* ïðè Г§Г*Г¤Г*Г*Г*îì  N
      temp--;
    }
//    printf("\nSmax:%i",Smax);
 
    if ((re=Smax-s)>=3)     // âîçìîæГ*Г® ГҐГ±ГІГј ГЇГ*Г°Г* Г·ГЁГ±ГҐГ« 
    { 
      while(second>first)   // ïåðåáîð ГўГ±ГҐГµ ГЇГ*Г°
      {
        second=re-first;
        // òðè öèêëГ* 
        sum=0;
        // ñóììГ* îò 1 äî first
        for(temp=1; temp<first; temp++)
          sum+=temp;
        // ñóììГ* îò first+1 äî second
        for(temp=first+1; temp<second; temp++)
          sum+=temp;
        // ñóììГ* îò second+1 äî N
        for(temp=second+1; temp<=n; temp++)
          sum+=temp;
        
        if (sum==s)
        {
          printf("\n yes \n %i %i", first, second);
          break;                   // Г§Г*êîìåГ*òèðîâГ*ГІГј åñëè Г*ГіГ¦Г*Гі ГўГ±ГҐ âîçìîæГ*ûå ГЇГ*ðû
        }
        first++; 
      } // end while
    } // end else
    
    if (re<3||(second<=first))       // Г*ГҐГІ ГЇГ*ðû Г·ГЁГ±ГҐГ« 
    {
      printf("\ nno");
    }
  } // end  if (n>=3&&n<=10&&s>=0&&s<=S_MAX)    // ïðîâåðêГ* âõîäГ*ûõ Г¤Г*Г*Г*ûõ
  else
  {
    printf("\n!incorrect input data");
  }
 
  printf("\nPress any key");
  getch();
} // end main
R1ck
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 5
12.07.2009, 17:24  [ТС]     Игра в числа [язык C] #3
TanT
Спасибо за отзыв!
прошу прощения, забыл указать компилятор - GCC 4.3.3. Дело в том, что в VS 2008 все работает, но GCC 4.3.3 выводит следующее:

solver.c: In function 'main':
solver.c:7: warning: incompatible implicit declaration of built-in function 'printf'
solver.c:7: warning: incompatible implicit declaration of built-in function 'scanf'
solver.c:50:14: warning: unknown escape sequence: '\040'
solver.c:4: warning: return type of 'main' is not 'int'
/tmp/cc2bV51D.o: In function `main':
solver.c.text+0x119): undefined reference to `getch'
collect2: ld returned 1 exit status

В чем проблема?
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
12.07.2009, 19:39     Игра в числа [язык C] #4
Добавь библиотеки #include <conio.h>
#include <stdio.h> и варнинги исчезнут

Добавлено через 4 минуты 52 секунды
Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб.
а кто ставил такие лимиты? для ваших условий по-моему многовато, хотя не оценивал, честно признаюсь
R1ck
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 5
12.07.2009, 19:40  [ТС]     Игра в числа [язык C] #5
Добавил. Теперь выводит это:

solver.c:1:19: error: conio.h: No such file or directory
solver.c:52:14: warning: unknown escape sequence: '\040'
solver.c: In function 'main':
solver.c:6: warning: return type of 'main' is not 'int'
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
12.07.2009, 19:55     Игра в числа [язык C] #6
хм, а что у вас в место conio в GCC? если знаешь аналог getch (использовал чтобы программа ждала нажатия любой клавиши пока я результатими её работы любуюсь), то можешь без без него и без conio обойтись
остальные ошибки на какие строчки указывают? с моим листингом совпадают? интересно на что ругается конкретно
R1ck
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 5
12.07.2009, 22:59  [ТС]     Игра в числа [язык C] #7
TanT, спасибо большое =) Все работает. Спасибо за помощь!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2009, 11:33     Игра в числа [язык C]
Еще ссылки по теме:

Язык С - C++
На языке С :) напишите программу которая будет перемножать квадратную матрицу размером NxN на вектор размерностью N. Значение N выбрать...

Перевести на язык С++ - C++
Помогите пожалуйста записать эти строчки на языке С++: int* val = (int*)calloc(1, sizeof(int)); for (j = 0, *val = 1; j &lt;...

Язык документа - C++
Нужно создать программу, которая будет автоматически вычислять язык документа. Программа не консольная, в окне программы указывается путь к...

строки язык C - C++
Дана строка, содержащая текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Wolandello
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
14.07.2009, 11:33     Игра в числа [язык C] #8
потрібно, щоб main мав тип int
Yandex
Объявления
14.07.2009, 11:33     Игра в числа [язык C]
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru