用golang打印数字

2019独角兽企业重金招聘Python工程师标准>>> 用golang打印数字
文章图片

【用golang打印数字】效果:

guodeMacBook-Air:programming_in_go guo$ go run 1_1.go 1234 122222233333344 1 12344 1222222333333444444 1234 1111111 2222223333334



go 源码(节选)
package mainimport ( "fmt" "os" )func main() { if len(os.Args) != 2 { fmt.Printf("%s number\n", os.Args[0]) return }bigdigits := [][]string{ {"000 ", " 00", " 00", " 00", "000", }, { "1", " 1 1", "1", "1", "1111111", }, { "999999", "99", "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 #include int main(int argc, char **argv) { const char *(a[][11]) = { {"000 ", " 00", " 00", " 00", "000", }, { "1", " 1 1", "1", "1", "1111111 " }, { "999999 ", "99 ", "999999 ", "9 ", "999999 " } }; if (argc != 2) { printf("Usage: %s \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; }



转载于:https://my.oschina.net/guonaihong/blog/408330

    推荐阅读