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

Найти координаты числа в бесконечной спирали из чисел - C++

Восстановить пароль Регистрация
 
Андрей1992
0 / 0 / 1
Регистрация: 13.06.2012
Сообщений: 60
28.10.2013, 17:09     Найти координаты числа в бесконечной спирали из чисел #1
Дана бесконечная во все стороны спираль из чисел, в центре которой - единица, нужно найти координаты числа по самому числу. (Прикрепил)
В общем-то идея только одна, строить спираль в массиве [-500..500][-500..500]
Знаю, что должна быть формула.
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2013, 17:09     Найти координаты числа в бесконечной спирали из чисел
Посмотрите здесь:

Даны действительные числа х1, у1, х2, у2, …,х10, у10. Найти периметр десятиугольника, вершины которого имеют соответственно координаты (х1, у1), (х2, C++
C++ Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С)
координаты точек на спирали C++
Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М C++
Найти среди двузначных чисел такие, что квадрат числа равен кубу суммы цифр этого числа C++
Заданы координаты точки подвеса математического маятника A(xa, ya, za) и координаты одной из точек его наивысшего подъема B(xb, yb, zb). Найти координ C++
C++ Запись в матрицу по спирали (ввод чисел с клавиатуры)
Найти координаты числа в матрице C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.10.2013, 00:09     Найти координаты числа в бесконечной спирали из чисел #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
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <cstdlib>
 
int main(int argc, char *argv[])
{ 
    const int value = 91;
 
    int v = value - 1;
 
    int helix = 0;
    int start = 1;
    for(; v>0; ++helix )
    {
        v -= (helix+1)*8;
        start += 8*helix;
    }
 
    int sideLen = helix * 2;
 
    int rest = value - start;
 
    int X = helix;
    int Y = -helix;
 
    int sideId = rest / sideLen;
    rest %= sideLen;
 
    switch( sideId )
    {
        case 0: Y += rest; break;
        case 1: Y += sideLen; X -= rest; break;
        case 2: Y += sideLen - rest; X -= sideLen; break;
        case 3: X -= sideLen - rest; break;
    }
 
    std::cout << "(" << X << "," << Y << ")" << std::endl;
 
    std::system( "pause" );
 
    return 0;
}
Yandex
Объявления
29.10.2013, 00:09     Найти координаты числа в бесконечной спирали из чисел
Ответ Создать тему
Опции темы

Текущее время: 00:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru