AC代码
1 #include <stdio.h> 2 int main () 3 { 4 int amount; 5 char pattern; 6 scanf("%d %c",&amount,&pattern); 7 int endNum = 1; 8 int lineNum = 0; 9 10 while(((1 + (2 *lineNum - 1)) * lineNum) / 2 * 2 - 1 < amount) 11 { 12 lineNum++; 13 } 14 if(((1 + (2 *lineNum - 1)) * lineNum) / 2 * 2 - 1 != amount) 15 lineNum--; 16 endNum = lineNum * 2 -1; 17 int remain = 0; 18 remain = amount - ((1 + (lineNum * 2 -1)) * lineNum / 2 * 2 -1); 19 int i; 20 int j; 21 int p; //控制空格 22 for(j = 0 ; j < lineNum ; j++) 23 { 24 for(p = j;p > 0 ;p--) 25 { 26 printf(" "); 27 } 28 for(i = 0;i < (lineNum * 2 - 1) - (j * 2);i++) 29 { 30 printf("%c",pattern); 31 } 32 printf(" "); 33 } 34 for(j = 0;j < lineNum - 1;j++) 35 { 36 for(p = 0;p < lineNum - 2 - j;p++) 37 { 38 printf(" "); 39 } 40 for(i = 0;i < 3 + j * 2;i++) 41 { 42 printf("%c",pattern); 43 } 44 printf(" "); 45 } 46 printf("%d",remain); 47 48 return 0 ; 49 }