C++で2D形状を印刷するプログラム
このチュートリアルでは、2D形状を印刷するプログラムについて説明します。
このために、半径、側面の長さ、側面の幅など、形状を作成するために必要なさまざまなパラメータが提供されます。それに応じて、厚みのない形状を印刷することがタスクです。
例
#include <bits/stdc++.h>
using namespace std;
void print_circle(int radius){
for (int i = 0; i <= 2 * radius; i++){
for (int j = 0; j <= 2 * radius; j++){
double distance = sqrt((double)(i - radius) * (i -
radius) + (j - radius) * (j - radius));
if (distance > radius - 0.5 &&
distance < radius + 0.5)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
void print_rectangle(int l, int b){
int i, j;
for (i = 1; i <= l; i++){
for (j = 1; j <= b; j++)
if (i == 1 || i == l || j == 1 || j == b)
printf("*");
else
printf(" ");
printf("\n");
}
}
void print_triangle(int side){
int i, j;
for (i = 1; i <= side; i++){
for (j = i; j < side; j++)
printf(" ");
for (j = 1; j <= (2 * i - 1); j++){
if (i == side || j == 1 || j == (2 * i - 1))
printf("*");
else
printf(" ");
}
printf("\n");
}
}
void print_hexagon(int length){
int l, j, i, k;
for (i = 1, k = length, l = 2 * length - 1; i < length;
i++, k--, l++){
for (j = 0; j < 3 * length; j++)
if (j >= k && j <= l)
printf("*");
else
printf(" ");
printf("\n");
}
for (i = 0, k = 1, l = 3 * length - 2; i < length; i++,
k++, l--){
for (j = 0; j < 3 * length; j++)
if (j >= k && j <= l)
printf("*");
else
printf(" ");
printf("\n");
}
}
void calc_pattern(int choice){
int radius, length, breadth, side;
switch (choice){
case 1:
radius = 4;
print_circle(radius);
break;
case 2:
length = 3, breadth = 8;
print_rectangle(length, breadth);
break;
case 3:
side = 6;
print_triangle(side);
break;
case 4:
side = 4;
print_hexagon(side);
break;
default:
printf("Invalid choice\n");
}
}
int main(){
int choice = 1;
calc_pattern(choice);
return 0;
} 出力
***** ** ** ** ** * * * * * * ** ** ** ** *****
-
C++でパリティを見つけるプログラム
このチュートリアルでは、パリティを見つけるためのプログラムについて説明します。 このために、番号が提供されます。私たちの仕事は、そのパリティ、つまり、1の数が奇数か偶数かを数えることです。 例 # include<bits/stdc++.h> # define bool int using namespace std; //finding the parity of given number bool getParity(unsigned int n) { bool parity = 0; while (n){ &
-
C++でバイナリツリーを印刷する
これらのルールに基づいて、m *n2D文字列配列に二分木を表示する必要があるとします- 行番号mは、指定された二分木の高さと同じである必要があります。 列番号nは常に奇数である必要があります。 ルートノードの値は、配置できる最初の行の真ん中に配置する必要があります。ルートノードが存在する列と行は、残りのスペースを2つの部分に分割します。これらは左下部分と右下部分です。左下の部分に左のサブツリーを印刷し、右下の部分に右のサブツリーを印刷する必要があります。ここで、左下部分と右下部分は同じサイズである必要があります。一方のサブツリーがnoneで、もう一方がnoneでない場合でも、noneサブツリ