링크 ux 셸 인쇄 99 곱셈 표

7031 단어 미니 서비스
99 곱셈 표를 인쇄 하 는 것 은 모든 언어 에서 필수 적 인 프로그램 이다. 특히 순환 을 배 운 후에 99 곱셈 표를 인쇄 하 는 첫 번 째 단 계 는 잘 알려 져 있다. 99 곱셈 표 의 형식 은 x * y = z 이기 때문에 우 리 는 적어도 두 개의 매개 변수 가 필요 하 다. 하 나 는 x 이 고 하 나 는 y 이다. 여기 서 우 리 는 i 와 j 를 사용 하여 x 와 y 를 9 를 초과 하지 않 고 일정한 규칙 을 가진다. 예 를 들 어 1x2, 1x3 등 이다.
위의 분석 에 따 르 면 우 리 는 먼저 i 와 j 를 써 서 우리 의 이중 for 순환 이 필요 할 때 까지 써 야 한다.
#!/bin/bash -
for i in `seq 9`
do
    for j in `seq 9`
        do
        echo $j,$i
    done

done

실행 결과
[root@XiaoPeng scripts]# bash chengfa.sh 
1,1
2,1
3,1
4,1
5,1
6,1
7,1
8,1
9,1
1,2
2,2
3,2
4,2
5,2
6,2
7,2
8,2
9,2
1,3
2,3
3,3
4,3
5,3
6,3
7,3
8,3
9,3
1,4
2,4
3,4
4,4
5,4
6,4
7,4
8,4
9,4
1,5
2,5
3,5
4,5
5,5
6,5
7,5
8,5
9,5
1,6
2,6
3,6
4,6
5,6
6,6
7,6
8,6
9,6
1,7
2,7
3,7
4,7
5,7
6,7
7,7
8,7
9,7
1,8
2,8
3,8
4,8
5,8
6,8
7,8
8,8
9,8
1,9
2,9
3,9
4,9
5,9
6,9
7,9
8,9
9,9
[root@XiaoPeng scripts]#

여기까지 왔 습 니 다. 여러분 은 이미 약간의 규칙 을 찾 았 을 것 입 니 다. i 와 j 는 우리 가 이미 나 왔 기 때문에 우 리 는 i 와 j 에 게 곱셈 연산 을 해 야 합 니 다.
!/bin/bash -
for i in `seq 9`
do
    for j in `seq 9`
        do
        echo "$i x $j = `echo $(($i*$j))`"      #   
    done

done

실행 결과
[root@XiaoPeng scripts]# bash chengfa.sh 
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5
1 x 6 = 6
1 x 7 = 7
1 x 8 = 8
1 x 9 = 9
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

이 단계 에 이 르 러 전체 초기 형 과 발생 했다. 이때 우 리 는 하나의 문 제 를 발견 했다. 그것 은 모든 공식 이 하나의 줄 이기 때문에 우 리 는 프로그램 을 수정 해 야 한다. echo 중의 - n 매개 변 수 는 크로스 출력 을 취소 할 수 있다.
    
 echo -n "$i x $j = `echo $(($i*$j))`"

실행 결과
[root@XiaoPeng scripts]# bash chengfa.sh 
1 x 1 = 11 x 2 = 21 x 3 = 31 x 4 = 41 x 5 = 51 x 6 = 61 x 7 = 71 x 8 = 81 x 9 = 92 x 1 = 22 x 2 = 42 x 3 = 62 x 4 = 82 x 5 = 102 x 6 = 122 x 7 = 142 x 8 = 162 x 9 = 183 x 1 = 33 x 2 = 63 x 3 = 93 x 4 = 123 x 5 = 153 x 6 = 183 x 7 = 213 x 8 = 243 x 9 = 274 x 1 = 44 x 2 = 84 x 3 = 124 x 4 = 164 x 5 = 204 x 6 = 244 x 7 = 284 x 8 = 324 x 9 = 365 x 1 = 55 x 2 = 105 x 3 = 155 x 4 = 205 x 5 = 255 x 6 = 305 x 7 = 355 x 8 = 405 x 9 = 456 x 1 = 66 x 2 = 126 x 3 = 186 x 4 = 246 x 5 = 306 x 6 = 366 x 7 = 426 x 8 = 486 x 9 = 547 x 1 = 77 x 2 = 147 x 3 = 217 x 4 = 287 x 5 = 357 x 6 = 427 x 7 = 497 x 8 = 567 x 9 = 638 x 1 = 88 x 2 = 168 x 3 = 248 x 4 = 328 x 5 = 408 x 6 = 488 x 7 = 568 x 8 = 648 x 9 = 729 x 1 = 99 x 2 = 189 x 3 = 279 x 4 = 369 x 5 = 459 x 6 = 549 x 7 = 639 x 8 = 729 x 9 = 81[root@XiaoPeng scripts]# 

이 단계 에 이 르 면 모든 변수 가 붙 어 있 는 것 을 발견 할 수 있 습 니 다. 어떻게 수정 합 니까?우 리 는 echo 뒤에 두 개의 빈 칸 을 넣 으 면 된다.
    
 echo -n "$i x $j = `echo $(($i*$j))`  ”     # ”        。

실행 결과
1 x 1 = 1  1 x 2 = 2  1 x 3 = 3  1 x 4 = 4  1 x 5 = 5  1 x 6 = 6  1 x 7 = 7  1 x 8 = 8  1 x 9 = 9  2 x 1 = 2  2 x 2 = 4  2 x 3 = 6  2 x 4 = 8  2 x 5 = 10  2 x 6 = 12  2 x 7 = 14  2 x 8 = 16  2 x 9 = 18  3 x 1 = 3  3 x 2 = 6  3 x 3 = 9  3 x 4 = 12  3 x 5 = 15  3 x 6 = 18  3 x 7 = 21  3 x 8 = 24  3 x 9 = 27  4 x 1 = 4  4 x 2 = 8  4 x 3 = 12  4 x 4 = 16  4 x 5 = 20  4 x 6 = 24  4 x 7 = 28  4 x 8 = 32  4 x 9 = 36  5 x 1 = 5  5 x 2 = 10  5 x 3 = 15  5 x 4 = 20  5 x 5 = 25  5 x 6 = 30  5 x 7 = 35  5 x 8 = 40  5 x 9 = 45  6 x 1 = 6  6 x 2 = 12  6 x 3 = 18  6 x 4 = 24  6 x 5 = 30  6 x 6 = 36  6 x 7 = 42  6 x 8 = 48  6 x 9 = 54  7 x 1 = 7  7 x 2 = 14  7 x 3 = 21  7 x 4 = 28  7 x 5 = 35  7 x 6 = 42  7 x 7 = 49  7 x 8 = 56  7 x 9 = 63  8 x 1 = 8  8 x 2 = 16  8 x 3 = 24  8 x 4 = 32  8 x 5 = 40  8 x 6 = 48  8 x 7 = 56  8 x 8 = 64  8 x 9 = 72  9 x 1 = 9  9 x 2 = 18  9 x 3 = 27  9 x 4 = 36  9 x 5 = 45  9 x 6 = 54  9 x 7 = 63  9 x 8 = 72  9 x 9 = 81 

훨씬 예 쁘 죠? 하지만 출력 결 과 는 줄 을 바 꾸 지 않 습 니 다. 99 곱셈 표 는 줄 을 바 꿔 야 하기 때 문 입 니 다. 1x1 = 1 줄 입 니 다.1x2 = 22 x2 = 4 줄.그래서 우 리 는 절 차 를 계속 수정 해 야 한다. 예 를 들 어 우리 가 규정 한 것 처럼 j 순환 이 끝 날 때마다 우 리 는 줄 을 한 번 바 꿔 야 한다.
    
for i in `seq 9`
do
    for j in `seq 9`
        do
        echo -n "$i x $j = `echo $(($i*$j))`  "
    done
echo ""   #     
don

실행 결과
[root@XiaoPeng scripts]# bash chengfa.sh 
1 x 1 = 1  1 x 2 = 2  1 x 3 = 3  1 x 4 = 4  1 x 5 = 5  1 x 6 = 6  1 x 7 = 7  1 x 8 = 8  1 x 9 = 9  
2 x 1 = 2  2 x 2 = 4  2 x 3 = 6  2 x 4 = 8  2 x 5 = 10  2 x 6 = 12  2 x 7 = 14  2 x 8 = 16  2 x 9 = 18  
3 x 1 = 3  3 x 2 = 6  3 x 3 = 9  3 x 4 = 12  3 x 5 = 15  3 x 6 = 18  3 x 7 = 21  3 x 8 = 24  3 x 9 = 27  
4 x 1 = 4  4 x 2 = 8  4 x 3 = 12  4 x 4 = 16  4 x 5 = 20  4 x 6 = 24  4 x 7 = 28  4 x 8 = 32  4 x 9 = 36  
5 x 1 = 5  5 x 2 = 10  5 x 3 = 15  5 x 4 = 20  5 x 5 = 25  5 x 6 = 30  5 x 7 = 35  5 x 8 = 40  5 x 9 = 45  
6 x 1 = 6  6 x 2 = 12  6 x 3 = 18  6 x 4 = 24  6 x 5 = 30  6 x 6 = 36  6 x 7 = 42  6 x 8 = 48  6 x 9 = 54  
7 x 1 = 7  7 x 2 = 14  7 x 3 = 21  7 x 4 = 28  7 x 5 = 35  7 x 6 = 42  7 x 7 = 49  7 x 8 = 56  7 x 9 = 63  
8 x 1 = 8  8 x 2 = 16  8 x 3 = 24  8 x 4 = 32  8 x 5 = 40  8 x 6 = 48  8 x 7 = 56  8 x 8 = 64  8 x 9 = 72  
9 x 1 = 9  9 x 2 = 18  9 x 3 = 27  9 x 4 = 36  9 x 5 = 45  9 x 6 = 54  9 x 7 = 63  9 x 8 = 72  9 x 9 = 81

이 럴 때 우리 의 정상 적 인 곱셈 표 는 직각 삼각형 이 고 지금 은 직사각형 출력 이라는 것 을 알 게 될 것 이다. 왜 일 까?우리 의 일부 공식 이 중복 되 었 기 때문에, 예 를 들 어 1x2 = 2 와 2x1 = 2 가 중복 되 었 으 니, 어떻게 해결 해 야 합 니까?여러분 은 하나의 규칙 을 발견 할 수 있 습 니 다. 1x2 = 2, 2x2 = 4, 그리고 1x3 = 3 2x3 = 6 3x3 = 9, 같은 줄 에서 앞의 수 는 뒤의 수 보다 크 지 않 습 니 다. 즉, j x i = z, j 는 i 보다 크 지 않 습 니 다.
    
for i in `seq 9`
do
    for j in `seq 9`
        do
        [ $j -le $i ] && echo -n "$i x $j = `echo $(($i*$j))`  "   #    j      i       
    done
echo ""
done

실행 결과
[root@XiaoPeng scripts]# bash chengfa.sh 
1 x 1 = 1  
2 x 1 = 2  2 x 2 = 4  
3 x 1 = 3  3 x 2 = 6  3 x 3 = 9  
4 x 1 = 4  4 x 2 = 8  4 x 3 = 12  4 x 4 = 16  
5 x 1 = 5  5 x 2 = 10  5 x 3 = 15  5 x 4 = 20  5 x 5 = 25  
6 x 1 = 6  6 x 2 = 12  6 x 3 = 18  6 x 4 = 24  6 x 5 = 30  6 x 6 = 36  
7 x 1 = 7  7 x 2 = 14  7 x 3 = 21  7 x 4 = 28  7 x 5 = 35  7 x 6 = 42  7 x 7 = 49  
8 x 1 = 8  8 x 2 = 16  8 x 3 = 24  8 x 4 = 32  8 x 5 = 40  8 x 6 = 48  8 x 7 = 56  8 x 8 = 64  
9 x 1 = 9  9 x 2 = 18  9 x 3 = 27  9 x 4 = 36  9 x 5 = 45  9 x 6 = 54  9 x 7 = 63  9 x 8 = 72  9 x 9 = 81 

전재 하 다https://blog.51cto.com/xiaowangzai/2090990

좋은 웹페이지 즐겨찾기