用golang打印数字
2019独角兽企业重金招聘Python工程师标准>>>
文章图片
【用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
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- JS中的各种宽高度定义及其应用
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- 涉毒患者(新诗)
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。