最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

1146: 5004 周易

互联网 admin 5浏览 0评论

1146: 5004 周易

题目描述

有人说,中国古代的“周易”是二进制系统的起源,在该系统中,他们用“- -”表示1,“---”表示0。因此,二进制数字“011010”可以表述为“---\n- -\n- -\n---\n- -\n---\n”(符号“\n”表示换行)。现在的问题是如何把一个十进制数转换为“周易”中的二进制?

输入

文件中包含多组测试数据。每个测试数据占一行,包括一十进制整数n(0 <= n <= 1000000)和表示二进制位数的k(0 < k <= 20 且 n < 2k)。
n=0,k=0表示输入结束。

输出

对于每组测试数据,输出“周易”中对应的k行二进制数。每组测试数据之间输出一个空行。

样例输入 复制

7 3
0 3
26 6
0 0

样例输出 复制

- -
- -
- ----
---
------
- -
- -
---
- -
---
#include<iostream>
using namespace std;
int main()
{int n;int k;int a[10005];while(scanf("%d%d",&n,&k)!=EOF){int len = 0;if(n==0&&k==0)break;while(n){a[len] = n%2;n/=2;len++;}if(len==k){for(int i =len-1;i>=0;i--){if(a[i]==1)printf("- -\n");elseprintf("---\n");}printf("\n");}if(len<k){for(int j = 0;j<(k-len);j++)printf("---\n");for(int i =len-1;i>=0;i--){if(a[i]==1)printf("- -\n");elseprintf("---\n");}printf("\n");}}return 0;
}

1146: 5004 周易

题目描述

有人说,中国古代的“周易”是二进制系统的起源,在该系统中,他们用“- -”表示1,“---”表示0。因此,二进制数字“011010”可以表述为“---\n- -\n- -\n---\n- -\n---\n”(符号“\n”表示换行)。现在的问题是如何把一个十进制数转换为“周易”中的二进制?

输入

文件中包含多组测试数据。每个测试数据占一行,包括一十进制整数n(0 <= n <= 1000000)和表示二进制位数的k(0 < k <= 20 且 n < 2k)。
n=0,k=0表示输入结束。

输出

对于每组测试数据,输出“周易”中对应的k行二进制数。每组测试数据之间输出一个空行。

样例输入 复制

7 3
0 3
26 6
0 0

样例输出 复制

- -
- -
- ----
---
------
- -
- -
---
- -
---
#include<iostream>
using namespace std;
int main()
{int n;int k;int a[10005];while(scanf("%d%d",&n,&k)!=EOF){int len = 0;if(n==0&&k==0)break;while(n){a[len] = n%2;n/=2;len++;}if(len==k){for(int i =len-1;i>=0;i--){if(a[i]==1)printf("- -\n");elseprintf("---\n");}printf("\n");}if(len<k){for(int j = 0;j<(k-len);j++)printf("---\n");for(int i =len-1;i>=0;i--){if(a[i]==1)printf("- -\n");elseprintf("---\n");}printf("\n");}}return 0;
}

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论