トピック:
- 要件、ひし形の幅nを入力します。これは、最も広い場所の*の数を表します。たとえば、次の図ではn = 7です。
C言語の実装
- スキル:
- (1)ひし形(上図のように)を上三角に分割し、逆三角形を実現します。
- (2)出力スペース法の各行にアスタリスク*が付いていることがわかりました。
#include<stdio.h>
int main()
{
int n, m, c, i;
printf("请输入*号的个数,代表菱形宽度:\n");
scanf("%d", &n);
for(i=1; i<= (n + 1)/2; i++)
{
for(m=1; m<= (n + 1)/2 - i; m++)
{
printf(" ");
}
for(c=1; c<=2*(i-1)+1; c++)
{
printf("*");
}
printf("\n");
}
for(i=1; i<(n/2 + 1); i++)
{
for(c=1; c<=i; c++)
{
printf(" ");
}
for(m=1; m<=((n+1)/2 - i) * 2 -1; m++)
{
printf("*");
}
printf("\n");
}
return 0;
}
Pythonの実装
- 記述は少し面倒ですが、それはまさにそのようなことです。C言語の実装を参照してください。内部のロジックは変更されておらず、コピーしただけです。言語が違うだけで、実装時のコードも違います。
n = int(input("请输入菱形的宽度:"))
for i in range(1, int((n + 1)/2) + 1):
print(" "*int(((n + 1)/2 - i)) , "*"*(2*(i-1)+1))
for i in range(1, int((n + 1)/2)):
print(" "*i , "*"*((int((n+1)/2) - i) * 2 - 1))
print(type(5/3))