【发布时间】:2009-10-22 18:34:41
【问题描述】:
考虑以下形式的 n 位二进制数:
bn-1bn-2bn-3...b0
每个 bi 是 n 位二进制数中的一个位。每个 bi 具有以下两个可能值之一:0 或 1。6 位二进制数的示例是:110011。在计算机内部,整数表示为二进制数。例如,整数 43 可以表示为 6 位二进制数:101011。在这一部分中,我们将使用通过取重复序列 101010 的前 m 位构造的 m 位二进制模式。 . . .例如,m 等于 3,二进制模式为:101。m 等于 6,二进制模式为:101010。m 等于 1,二进制模式为:1。
编写一个 C 程序,读取整数 n 和 m 作为输入,然后打印出所有包含 m 位模式的 n 位二进制数。二进制数必须按升序打印。不允许对这个问题使用字符串、数组或递归。任何使用字符串、数组或递归的程序都将获得 0 分。您的程序可能会假设 n 将是小于或等于 30 的自然数,而 m 将是小于或等于 n 的自然数。
此程序的示例输出是:
输入一个整数 n:(5)
输入一个整数 m:(3)
00101
01010
01011
01101
10100
10101
10110
10111
11010
11011
11101
我是编程初学者,我已经完成了这项任务。我了解该程序将如何工作,但我不太确定如何进行。任何人都可以帮助我并发布解决方案,以便我可以运行它并查看它是如何工作的。谢谢
【问题讨论】:
-
家庭作业到目前为止你有什么?作弊让你在生活中无处可去,尤其是当你将整个同上扫描到 SO 上时。
-
左移 (
-
如果您发布到目前为止的内容,您将获得更好的答案。简单地问别人“你能不能帮我做作业,让我看看”是不道德的。可以问“我已经走了多远,但我被困在这部分;有人可以帮我找出问题所在吗?”