说明
赵老师最近在编一个操作系统,正好编到鼠标的繁忙状态,需要一个沙漏符号,正好大家都在学C++,你的任务就是帮赵老师编一个程序打印一个沙漏符号。
输入格式
一个整数n,符号的行数(保证n是大于1的奇数)
输出格式
沙漏符号,使用“*”打印
样例
输入数据 1
5
输出数据 1
*****
***
*
***
*****
AC代码 :c++(O2优化)
#include<iostream>
using namespace std;
int main(){
int i,j,n,y,x;
cin>>n;
n=(n+1)/2;
//ÕýÈý½Ç
for(i=n;i>=1;i--){
if(i==1){
}else{
for(j=1;j<=n-i;j++){
cout<<" ";
}
}
if(i==1){
}else{
for(j=1;j<=2*i-1;j++){
cout<<"*";
}
}
if(i==1){
}else{
cout<<endl;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++){
cout<<" ";
}
for(j=1;j<=2*i-1;j++){
cout<<"*";
}
cout<<endl;
}
}
AC代码 :C(OJ)
#include<stdio.h>
int main(){
int n,i,j,z;
scanf("%d",&n);
//控制输出的行数
for(i = n;i >= 1;i-=2){
//控制每行输出空格量
for(j = 0;j < (n-i) / 2;j++){
printf(" ");
}
//控住输出的*
for(z=1;z <= i;z++){
printf("*");
}
//负责换行
printf("\n");
}
for(i = 3;i <= n;i+=2){
//控制每行输出空格量
for(j = 0;j < (n-i) / 2;j++){
printf(" ");
}
//控住输出的*
for(z=1;z <= i;z++){
printf("*");
}
//负责换行
printf("\n");
}
return n;
}
AC代码:Java
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int k=0;
if(n%2==1){
k=n/2+1;
}else{
k=n/2;
}
for(int i=1;i<=k;i++){
for(int j=1;j<i;j++){
System.out.print(" ");
}
for(int j=1;j<=n-2*i+2;j++){
System.out.print("*");
}
System.out.println();
}
for(int i=1;i<=k-1;i++){
for(int j=1;j<k-i;j++){
System.out.print(" ");
}
for(int j=1;j<=2*i+1;j++){
System.out.print("*");
}
System.out.println();
}
}
}
AC代码:Python
n = int(input());
for i in range(1, n//2 +1 ):
for k in range(1, i):
print(end=' ')
for x in range(1 ,n - (i -1)*2+1):
print('*', end = '')
print()
for a in range (1, n//2 + 2 ):
for b in range (1, n // 2 +1 - a + 1 ):
print('',end=' ')
for c in range (1, 2*a ):
print('*' ,end='')
print()