矩形到带C的字符串中的圆

rectangle to circle in string with C

本文关键字:字符串      更新时间:2023-10-16

我使用字符串来表示信息,它是一个十六进制字符串。这些字符串序列的形状是一个矩形。然而,我想通过删除无用的十六进制数字并替换为"0"来将形状更改为圆形

例如:十六进制字符串是

"f1ffffffff"
"ff2fffffff"
"fff3ffffff"
"ffff4fffff"
"fffff5ffff"
"ffffff6fff"
"fffffff7ff"
"ffffffff8f"
"fffffffff9"
"ffffffffff"

圆形的输出十六进制字符串是

"000ffff000"
"002fffff00"
"0ff3fffff0"
"0fff4ffff0"
"fffff5ffff"
"ffffff6fff"
"0ffffff7f0"
"0fffffff80"
"00ffffff00"
"000ffff000"

我试着使用一个生成圆的程序,如下所示:

void main() 
{
    int radius;
    cout << "Input circle's radius: ";
    cin >> radius;
    for (int i = 1; i <= radius*2; i++) 
    cout << "=";
    cout << endl;
    for (int x = 1; x < radius*2; x++) 
    {
        for (int y = 1; y < radius*2; y++)
        {
            if (abs(y - radius) * abs(y - radius) + abs(x - radius) * abs(x - radius) <= radius * radius) 
            cout << "ff11";
            else cout << " ";
        }
        cout << endl;
    }
}

我遇到的问题是程序改变了十六进制字符串的位置,但没有删除无用的十六进制。有人能帮我拿密码吗?

编辑:

上面的例子是一个十个字符串序列,每个字符串有十个十六进制数字,这是我生成的。我想重新塑造seq1,使其看起来像一个圆圈(seq2"0"表示"没有单词")。因此,对于第一行,我删除了前三个十六进制数和最后三个六进制数,并用"0"代替,这六个数字被称为"无用的十六进制",依此类推

我使用的代码可以打印一个圆圈,但这并不是我想要的。我有问题来实现这个功能。如果有人帮我更改一些代码或完全更改,我将非常感激。

更换

cout << "ff11";

使用一个字符而不是四个字符,例如

cout << "f";

然后你就会得到你想要的。