Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для BOR1K
14 / 14 / 3
Регистрация: 19.09.2009
Сообщений: 289

Очень интересная головоломка..

15.12.2009, 13:54. Показов 1348. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив целых чисел (n=10);

Переставить элементы след образом

a[1],a[10],a[2],a[9],a[3],a[8].....

Целый день думаю, ничего на ум не приходит...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.12.2009, 13:54
Ответы с готовыми решениями:

Интересная головоломка
1.С помощью текстового редактора создать файл который содержит текст.Длина ряда с текстом не должна превышать 80 символов.Это входной файл....

интересная головоломка
помоготе решить задачу про спички я уже неделю голову ломаю....Даны n-спичек и 2 игрока,каждый может вытянуть от 1 до 3 спичек...выигрывает...

Головоломка с матрицей. Очень интересно!
Не в корысных целях(мне эта программа не нужна, просто интересно стало, как такое реализовать) пишите свои соображения по поводу решения:...

12
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
15.12.2009, 14:04
BOR1K,
C++
1
for (size_t i = 0 ; i < n ; i++) { int temp = a[i] ; a[i] = a[n-1-i] ; a[n-1-i] = temp;}
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
15.12.2009, 14:05
Да тут все просто
Можно сделать что то типа этого:
C
1
2
3
4
5
6
for(i=0;i<n-1;i++)
{
for(j=n-1;j>i;j--) a[j+1]=a[j];
a[i+1]=a[n-i];
i=i+2;
}
Код правда не отлаживал, могут быть ошибки.
0
 Аватар для Harlequin
42 / 42 / 7
Регистрация: 08.11.2009
Сообщений: 167
15.12.2009, 14:06
C++
1
2
for(int i = 0; i < 10; i++)
    b[i] = (i%2==0) ? a[i/2] : a[9-i/2];
0
 Аватар для BOR1K
14 / 14 / 3
Регистрация: 19.09.2009
Сообщений: 289
15.12.2009, 14:08  [ТС]
а у мну такой вариант был)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "conio.h"
 
int _tmain(int argc, _TCHAR* argv[])
{int m[20],n=10;
for(int i=0;i<n;i++)
{printf("#%d=",i);
scanf("%d",&m[i]);}
//решение
for(int j=0;j<10;j++)
{for(int i=20;i>j+1;i--)
{m[i+1]=m[i];
 m[j]=m[20-i];
}}
 
    
for(int i=0;i<19;i++)
{printf("%d",m[i]);}
 
getch();
return 0;
}
0
 Аватар для Gorev
135 / 132 / 30
Регистрация: 08.12.2009
Сообщений: 565
Записей в блоге: 3
15.12.2009, 14:08
вот
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uses crt;
const n=10;
var a:array [1..10] of real;b:integer;
begin
for b:=1 to n do
begin
a[b]:=int(100*random)-50;
writeln(a[b]);
end;
writeln('        ');
for b:=1 to n do
begin
writeln(a[0+1]);writeln(a[10-1]);end;
readln
end.
0
 Аватар для Harlequin
42 / 42 / 7
Регистрация: 08.11.2009
Сообщений: 167
15.12.2009, 14:13
а теперь все взяли и запустили свои программки, чтоб убедиться что у всех вышла полная лажа

я так понял что массив только один и вспомогательными пользоваться нельзя?
0
 Аватар для BOR1K
14 / 14 / 3
Регистрация: 19.09.2009
Сообщений: 289
15.12.2009, 14:15  [ТС]
да один, но можно его взять в 2 раза больше.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
15.12.2009, 14:22
Цитата Сообщение от Андрейка Посмотреть сообщение
C++
1
for (size_t i = 0 ; i < n ; i++) { int temp = a[i] ; a[i] = a[n-1-i] ; a[n-1-i] = temp;}
Это реверс.
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
#include <iostream>
 
int main()
{
  setlocale(LC_ALL, "Russian");
 
  const int n = 10;
  int arr[n] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
 
  std::cout << "Начальная последовательность" << std::endl;
 
  for(int i = 0; i < n; ++i)
    std::cout << arr[i] << " ";
  
  std::cout << std::endl;
 
  int res[n];
 
  for(int i = 0; i < n; ++i)
    res[i] = i % 2 ?  arr[n - 1 - i / 2] : arr[i / 2];
 
  
  std::cout << "Переставленная последовательность" << std::endl;
 
  for(int i = 0; i < n; ++i)
    std::cout << res[i] << " ";
 
  std::cout << std::endl;
 
  system("pause");
 
  return 0;
}
Добавлено через 4 минуты
Цитата Сообщение от BOR1K Посмотреть сообщение
да один, но можно его взять в 2 раза больше.
А смысл? Памяти от использования одного массива размером 20 уйдет столько же сколько от использования 2 массивов размером 10.
1
 Аватар для BOR1K
14 / 14 / 3
Регистрация: 19.09.2009
Сообщений: 289
15.12.2009, 14:24  [ТС]
Спасибо. Но все же не могу понять в чем подвох задачи, если ее решать через 1 массив, у меня были предположения правильного решения через 2 массива сразу))
0
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
15.12.2009, 14:26
CyBOSSeR, аа да прогнал ) не так условие прочитал)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
15.12.2009, 16:08
Цитата Сообщение от BOR1K Посмотреть сообщение
да один, но можно его взять в 2 раза больше.
Вот с этого и начинали бы
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
#include <stdio.h>
#define ARR_SIZE 10
 
int main(void){
    int arr[ARR_SIZE * 2] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int *h, *t, *o, i;
    
    printf("Original: ");
    for ( h = arr; h < arr + ARR_SIZE; h++ )
        printf("%d ", *h);
    printf("\n");
    
    for ( h = arr, t = arr + ARR_SIZE - 1, o = arr + ARR_SIZE; h < t; h++, t-- ){
        *o++ = *h;
        *o++ = *t;
    }
    if ( h == t ) /*  это, если бы количество элементов было нечётное */
        *o = *h;
    for ( h = arr, t = o = arr + ARR_SIZE; h < t; h++, o++ ){
        i = *h;
        *h = *o;
        *o = i;
    }
    
    printf("Processed: ");
    for ( h = arr; h < arr + ARR_SIZE; h++ )
        printf("%d ", *h);
    printf("\n");
    
    
    return 0;
}
0
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
15.12.2009, 19:20
Предложу и свой неказистый вариант.Даже не ручаюсь,правильная ли там логика,проверьте. Но вроде работает.
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
#include <iostream>
 
  int main ()
  {
     int a[] = {1,2,3,4,5,6,7,8,9,10};
     int max = 9;
     int temp,last = max;
     
     // Необходимо запомнить последний элемент,
     // а затем сдвинуть все элементы вправо,
     // после чего последний элемент вставляется на
     // место самого левого в сдвигаемом ряде.
     // Шаг сдвига равен 2.
     for (int i = 1; i < max; i+=2)
     {
        temp = a[last];
        for (int j = last; j > i; --j)
        {
           a[last] = a[last-1];
           --last;
        }
        a[i] = temp;
        last = max;
     }
     
     for (int i = 0; i <= 9; ++i)
        std::cout << a[i] << ' ';
        
     return 0;
  }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2009, 19:20
Помогаю со студенческими работами здесь

очень интересная задание
Паша очень любит готовить сэндвичи. Свой фирменный сэндвич «Купе» он готовит из четырех главных ингредиентов: верхний кусок хлеба, ломтик...

Очень интересная задачка на C++
Исследовать сходимость ряда Фурье по косинусам для функции f(x)=l-x на отрезке ,l=1. Определить, сколько членов ряда Фурье необходимо...

Очень интересная задача, не все смогут
Напишите программу, использующую рекурсию, определяющую положение восьми ферзей на шахматной доске, при котором ни один ферзь не угрожает...

очень интересная загадка по мотивам одной известной истории=)
Вы, наверное, слышали историю о том, как один могуществен-ный правитель обещал наградить ученого, оказавшего ему большую услугу. Ученый,...

интересная головоломка
Стал изучать lwjgl(движок ява для создания игр) и столкнулся с проблемой снижения fps(частота обновления экрана) из-за небольшой как мне...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru