在 C++ 中分解数字
decomposition of a number in c++
我没有代码,我只是问如何开始。好吧,用户输入数字(例如,数字将是 437(。分解单位是(50,10,1(,就像在银行系统中一样。让我们回到示例 437 ,输出将是 50*8(因为结果是 400(,然后是 10*3(...30( 最后数字 7 将是 1*7。如何开始?如果数字 437 会有 1101 怎么办?如何告诉代码停止?
想象一下,你是一名银行出纳员,有人正在提取非常具体数量的现金。他们要求111111美元。你的大脑在做什么才能告诉你停止给他们现金?你会给这个人无限的钱吗?你不给他钱吗?从字面上看,问问自己如何将这些人的钱分解成较小的钞票。然后向一个不懂数学的孩子解释怎么做。
然后告诉计算机通过代码执行此操作。计算机比孩子更好,因为他们在解决问题时没有逻辑直觉,但他们完全遵循指令,他们的数学做得很好。所以,假装计算机(你的程序(是一个孩子,他会完全按照你说的去做,并告诉它如何给客户他们要求的现金。
如果你不知道作为银行出纳员将如何解决这个问题,那就停止编码,先去学习数学。解决像这样的简单编程问题至少需要这种水平的数学能力。
我现在无法为您提供C++代码,但从逻辑上讲,我会提出以下建议:
您有一组除数,在您的示例中为 50、10 和 1。您只需按顺序将股息与每个除以 - 每个的答案将是整数部分(不四舍五入(。如果有余数,则余数除以下一个。
所以,在有点伪代码中:
(除数为 50、10、1 - 除数为 437(:
获取 50 的数量
num50s = 437/50;
余数 = 437 - (437/50(;
获取 10 的数量
num10s = 余数/10;
余数 = 余数 - (余数/10(;
等。。。
数字50s,num10s...是你要找的。
现在,这可以写得更好,更有效,但希望它能给你这个想法。
顺便说一句 - 像 1101 这样的数字是相同的。如果将 100 作为细分的一部分,则上述示例有效,但不是从除以 50 开始并得到余数,而是从除以 100 开始。希望这有帮助。
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 通过递归进行因子分解
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 有人能分解一下这个c++模板的语法吗
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 在 C++ 中分解数字
- 下面的代码是如何工作的?它输出分解的数字并且功能齐全,我只是不明白它是如何做到的
- 将数字串分解为结构的向量
- 如何将int分解为数字并以相同的顺序为向量分配数字
- 使用指数符号找到数字的主要分解
- 如何使用字符串数组来分解一个数字的单个数字
- 在 Javascript 中分解一个数字
- 数字误差的质因数分解
- 将一串数字分解为26以下数字的计数方法
- 用双循环分解数字
- 如何优化这个c程序来找到一个数字的质因数分解