循环~交替字符倒三角
题目描述
根据读入的高,勾画ST字符交替的倒三角形。
输入
输入数据为正整数n(1≤n≤30)。
输出
输出以n为高的ST字符交替的倒三角形。
1 #include<stdio.h> 2 int main(){ 3 int n; //三角形的高为n 4 scanf("%d",&n); 5 //输出的行数 6 for(int i=1;i<=n;i++){ 7 //输出的前一半空格 8 for(int j=1;j<i;j++){ 9 printf(" "); 10 } 11 // //输出的前一半交替的字符三角形: 12 // for(int j=n;j>=i;j--){ 13 // if(j%2==0) 14 // printf("T"); 15 // else 16 // printf("S"); 17 // } 18 // //输出的后一半的交替字符三角形 19 // for(int j=n-1;j>=i;j--){ 20 // if(j%2==0) 21 // printf("T"); 22 // else 23 // printf("S"); 24 // } 25 26 /* 每一行字母的输出个数由上到下满足 得到第一个输出个数与关系 输出的每一行个数与循环变量i之间的关系满足: 27 n=3:5-3-1 n*2 i=1~5=n*2-1;i=2~3=n*2-3;i=3~1=-5 28 n=4:7-5-3-1 n*2 29 n=6:11-9-7-5-3-1 n*2 i=1~11=n*2-1;i=2~9=n*2-3;i=3~7=-5... 30 所以i的减量变化:1 3 5 7... 31 ->n与i的关系:2*n-(i*2-1) 32 33 */ 34 for(int j=1;j<=2*n-i*2+1;j++){ 35 //具体每一行:第偶数个输出T,第奇数个输出S 36 if(j%2==1){ 37 if(j!=(2*n-i*2+1)) 38 printf("S"); 39 else 40 printf("S"); 41 } 42 else 43 printf("T"); 44 } 45 46 printf("\n"); 47 } 48 return 0; 49 }