循环日程表问题——C++代码求解

#include <iostream>
#include <iomanip>

constexpr size_t count = 8;
size_t table[count][count];

void copy_table(int ro, int rp, int co, int cp, int size)
{
    for (size_t i = 0; i < size; i++)
    {
        for (size_t j = 0; j < size; j++)
        {
            table[i + rp][j + cp] = table[i + ro][j + co];
        }
    }
}

void init_table()
{
    for (size_t i = 0; i < count; i++)
    {
        table[0][i] = i + 1;
    }
}

void fill_table(int r, int c, int size)
{
    if (size == 1)
    {
        return;
    }
    int s = size / 2;
    fill_table(r, c, s);
    fill_table(r, c + s, s);
    copy_table(r, r + s, c, c + s, s);
    copy_table(r, r + s, c + s, c, s);
}

void print_table()
{
    for (size_t i = 0; i < count; i++)
    {
        for (size_t j = 0; j < count; j++)
        {
            std::cout << std::setw(4) << table[i][j];
        }
        std::cout << std::endl;
    }
    std::cout << std::endl;
}

int main()
{
    init_table();
    fill_table(0, 0, count);
    print_table();
}
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容