循环~交替字符倒三角

题目描述

根据读入的高,勾画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 }

 

posted on 2022-11-01 20:05  罗小罗佳油  阅读(205)  评论(0编辑  收藏  举报