效果:
guodeMacBook-Air:programming_in_go guo$ go run 1_1.go 1234 1 222222 333333 4 4 1 1 2 3 4 4 1 222222 333333 444444 1 2 3 4 1111111 222222 333333 4
go 源码(节选)
package main import ( "fmt" "os" ) func main() { if len(os.Args) != 2 { fmt.Printf("%s number\n", os.Args[0]) return } bigdigits := [][]string{ {" 000 ", " 0 0", " 0 0", " 0 0", " 000 ", }, { " 1 ", " 1 1 ", " 1 ", " 1 ", "1111111", }, { "999999", "9 9", "999999", " 9", "999999", }, } for row := range bigdigits[0] { strdigit := os.Args[1] line := "" for i := range strdigit { d := strdigit[i] - '0' if d < 0 || d > 9 { fmt.Printf("error number\n") return } line += bigdigits[d][row] + " " } fmt.Printf("%s\n", line) } }
完成同同样效果的c语言源码(节选)
#include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { const char *(a[][11]) = { {" 000 ", " 0 0", " 0 0", " 0 0", " 000 ", }, { " 1 ", " 1 1 ", " 1 ", " 1 ", "1111111 " }, { "999999 ", "9 9 ", "999999 ", " 9 ", "999999 " } }; if (argc != 2) { printf("Usage: %s <number>\n", argv[0]); return 0; } char *p; int d, r, row; row = (int)(sizeof(a[0]) / sizeof(a[0][0])); for (r = 0; r < row; r++) { for (p = argv[1]; *p; p++) { d = *p - '0'; if (d < 0 || d > 9) { printf("error number \n"); return EXIT_FAILURE; } if (a[d][r] == NULL) goto done; printf("%s", a[d][r]); } printf("\n"); } done: return 0; }
有疑问加站长微信联系(非本文作者)