Jay Bachre Ответов: 1

Генерация бесконечной последовательности


Есть 2 положительных целых числа x и y мы должны сгенерировать шаблон который выглядит следующим образом,
2,3,3,2,3,3,3,2,3,3,3,2,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,2....
Если мы посмотрим на количество 3s между 2s мы можем увидеть тот же самый шаблон создается,
2 | 3 3 | 2 | 3 3 3 | 2 | 3 3 3 | 2 ......

Что я уже пробовал:

#include <iostream.h>
#include <conio.h>

void main() {
  clrscr();
  int x = 5, y = 6;
  int u = x, l = 0, k = 0, j = x;

  while(k < 21) {
    cout<<x<<",";
    if(u == x && l > 0) {
      u = y;
      l = 0;
    }

    if(u == y && l == j) {
      if(j == x) {
	j = y;
      } else {
	j = x;
      }

      u = x;
      l = 0;
    }

    for(int i=0; i<u; i++) {
      cout<<y<<",";
    }
    l++;
    k++;

    cout<<endl;
  }

  getch();
}


Это работает, но я не думаю, что это оптимальный способ сделать это.

Gerry Schmitz

Я согласен: паршивые имена переменных; никаких комментариев и т. д.

Rick York

Это не похоже на "тот же самый шаблон" для меня. Где есть сходство в шаблоне, который вы разместили? Если бы это было 2,3,3,2,3,3,3,3,2, я могу видеть паттерн, но я не вижу его в последовательности, которую вы опубликовали.

1 Ответов

Рейтинг:
1

Richard MacCutchan

Вам просто нужно две петли. На внешней стороне должно быть напечатано "2,3,3,2". Внутренний должен отсчитываться от 2 вверх, что дает количество групп "3,3,3" для отображения после внешнего набора.