【发布时间】:2021-05-10 04:21:20
【问题描述】:
几周前我在考试中遇到了这个问题(未能回答),我想知道如何解决这类问题,因为我看到它们会重复自己。
编写 C 程序,在插入 -1 之前获取整数。如果先前写入的数字的某个乘积等于最后输入的整数 - 程序将打印它。
我知道它很难理解,但这里有几个例子:
(输入顺序从左到右)
1 -> 2 -> 3 -> 6(将打印 2 * 3=6)-> 36(将打印 2 * 3 * 6)-> -1
我可以看到由于内存限制,数组很难解决这个问题...... 所以我想使用“列表”,但不知道如何使用。
我不想要一个完整的解决方案!我想获得有关如何在 C 中解决它的任何提示(C# 也可以,但首选 C)。
【问题讨论】:
-
如果我在输入
36之后再输入18,程序是打印3 * 6 = 18,还是什么都不打印? -
是的,它打印 3 * 6 ,如果有一个,它将每次打印 1 个组合,如果没有,它将不打印任何内容。它会一直这样做,直到输入 -1(当然假设输入的数字是正数)
-
List<T>只是对数组的精美包装,因此无论您指的是什么“内存限制”都无法通过使用列表来解决。 -
您将如何“手动”执行此操作?你可以在代码中应用它吗?甚至是蛮力版本?从那里开始。
-
提示:您可以使用模运算符通过将结果与
0进行比较来确定一个数是否可以被另一个数整除。例如,6 % 2 == 0和36 % 3 == 0