打印沙漏
#include <stdio.h>
using namespace std;
int main(int argc, const char * argv[]){
int n;
char c;
scanf("%d %c",&n,&c);
int increase=6;
int sum=1,layer=1;
while(sum+increase<=n){
sum+=increase;
increase+=4;
layer+=1;
}
increase-=4;
for(int i=0;i<layer;i++){
for(int j=0;j<i;j++){
printf(" ");
}
for(int j=0;j<(increase-i*4)/2;j++){
printf("%c",c);
}
printf("\n");
}
for(int i=layer-2;i>=0;i--){
for(int j=0;j<i;j++){
printf(" ");
}
for(int j=0;j<(increase-i*4)/2;j++){
printf("%c",c);
}
printf("\n");
}
printf("%d",n-sum);
return 0;
}
注意:每一行后没是没有空格的

浙公网安备 33010602011771号