целочисленная последовательность (A054237) - PullRequest
0 голосов
/ 27 сентября 2019

Проблема: дано 2 целых числа: n и k

n: высота главного треугольника

k: высота под-треугольников

Вычислить индексы каждого из возможныхпод-треугольники в главном треугольнике.


Пример ввода: 4 2

Ожидаемый результат

0   1   2
1   3   4
2   4   5
3   6   7
4   7   8
5   8   9

(Это следует за последовательностью A054237 (https://oeis.org/A054237/table))

Объяснение:

индексы главного треугольника с высотой 4:

   0
  1 2
 3 4 5
6 7 8 9

Подтреугольники:

 0      1       2       3       4       5
1 2    3 4     4 5     6 7     7 8     8 9

Вывод со следующим кодом:

0   2   3
1   4   5
2   5   6
3   7   8
4   8   9
5   9   10

#include <iostream>

using namespace std;

int rec(int x)
{
    return (x*(x+1))/2;             //sum of n natural numbers
}
int main()
{   int n,k;                    //n=height of triangle  k=height of sub-triangles   ne= number of elements
    cin>>n>>k;
    int ne=rec(n);  
    int rk=rec(k);                  //rk=number of elements in sub-triangle
    int nt=ne-rk-1;         //     nt=number of sub-triangles
    int t1=0;               // temporary variable 1
    int t2=0;               //temporary variable 2
    cout<<"\n";
    for(int rt=1,ior=0;ior<nt;rt++)
    {
        for(int ioc,r=0; r<rt && ior<nt; r++,ior++)
        {   ioc=0;
            for(int ct=1;ioc<rk;ct++)
            {
                for(int c=0;c<ct && ioc<rk;ioc++,c++,t2++)
                {
                    cout<<t2<<"\t";
                }
                t2+=rt;
            }
            cout<<"\n";
            t1++;
            t2=t1;
        }
    }
    return 0;
}

Помогите мне исправить это.

1 Ответ

0 голосов
/ 29 сентября 2019

Понял!

#include <iostream>

using namespace std;

int rec(int x)
{
    return (x*(x+1))/2;             //sum of n natural numbers
}
int main()
{   int n,k;                   //n=height of triangle  k=height of sub-triangles   ne= number of elements
    int t1=0;
    int t2=0;
    cin>>n>>k;
    int ne=rec(n);
    unsigned long int e[ne],gval,sum=0;  //e[]=array to store elements   gval=greatest element of sub-triangle    sum=sum of gvals
    int rk=rec(k);                  //rk=number of elements in sub-triangle
    int nt=ne-rk-1;         //ior[]=array to store index of row     nt=number of sub-triangles
    for(int rt=0,ior=0;ior<nt;rt++)
    {
        for(int ioc,r=0; r<=rt && ior<nt; r++,ior++)
        {   ioc=0;
            for(int ct=0;ioc<rk;ct++)
            {
                for(int c=0;c<=ct && ioc<rk;ioc++,c++,t2++)
                {
                    cout<<t2<<"\t";
                }
                t2+=rt;
            }
            cout<<"\n";
            t1++;
            t2=t1;
        }
    }
    return 0;
...