如何将一个数字分成多个部分,使结果之和等于输入?

2024-03-08

我试图将一个数字分成多个部分,以便各部分的总和等于输入数字。

如果我有 3.99 并且需要分成两部分,则预期输出为 2 和 1.99 (2+1.99=3.99)

如果我需要将 3.99 分成 3 部分,则预期输出为 1.3、1.3 和 1.39 (1.3+1.3+1.39=3.99)

对于第一个示例,我能够输出 2.99 和 1,对于第二个示例,我能够输出 1.99、1 和 1。然而,这两种情况的结果都与预期产出相差甚远。

我需要将邮政费用分成单独的行项目。结果可以等分或不等分,同时确保不同部分的总和等于输入数字。

以下是一些其他示例:

3.99 divided in 3 parts: 1.33, 1.33, 1.33
3.98 divided in 3 parts: 1.33, 1.33, 1.32
3.97 divided in 3 parts: 1.32, 1.32, 1.33
3.96 divided in 3 parts: 1.32, 1.32, 1.32
3.95 divided in 3 parts: 1.32, 1.32, 1.31

我用你提供的值进行了测试。可能需要一些调整:

static IEnumerable<decimal> SplitValue2(decimal value, int count)
{
    if (count <= 0) throw new ArgumentException("count must be greater than zero.", "count");
    var result = new decimal[count];

    decimal runningTotal = 0M;
    for (int i = 0; i < count; i++)
    {
        var remainder = value - runningTotal;
        var share = remainder > 0M ? Math.Max(Math.Round(remainder / ((decimal)(count - i)), 2), .01M) : 0M;
        result[i] = share;
        runningTotal += share;
    }

    if (runningTotal < value) result[count - 1] += value - runningTotal;

    return result;
}

这假设您传入一个小数点后 2 位精度的值。如果您通过了 3.999,您将不会得到正确的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将一个数字分成多个部分,使结果之和等于输入? 的相关文章

  • 赋值运算符和复制构造函数有什么区别?

    我不明白C 中赋值构造函数和复制构造函数之间的区别 是这样的 class A public A cout lt lt A A lt lt endl The copy constructor A a b The assignment cons
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 是否有与 C++11 emplace/emplace_back 函数类似的 C# 函数?

    从 C 11 开始 可以写类似的东西 include
  • C++派生模板类继承自模板基类,无法调用基类构造函数[重复]

    这个问题在这里已经有答案了 我试图从基类 模板 继承 派生类也是模板 它们具有相同的类型 T 我收到编译错误 非法成员初始化 Base 不是基类或成员 为什么 如何调用基类构造函数 include
  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • std::bind 重载解析

    下面的代码工作正常 include
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • C# 搜索目录中包含字符串的所有文件,然后返回该字符串

    使用用户在文本框中输入的内容 我想搜索目录中的哪个文件包含该文本 然后我想解析出信息 但我似乎找不到该字符串或至少返回信息 任何帮助将不胜感激 我当前的代码 private void btnSearchSerial Click object
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据

随机推荐

  • 如何从部分视图将 JavaScript 渲染到 MasterLayout 部分?

    给定 MVC3 和 Razor 引擎 我得到 MasterLayout cshtml RenderSection JavaScript required false RenderBody 查看 cshtml MasterLayout csh
  • 为变量名称添加前缀以指示它们各自的范围或来源?

    在我工作过的公司中 我见过很多使用前缀来指示变量的范围或来源的情况 例如m对于班级成员来说 i对于方法内部变量和a or p 对于方法参数 public class User private String mUserName public
  • Android 媒体播放器错误 (-19, 0)

    我尝试在单击按钮时重播声音 但我得到错误 19 0 这意味着什么 My code final Button xxx Button findViewById R id xxx xxx setOnClickListener new View O
  • Azure 网站和 Sass

    我一直在尝试寻找是否有一种方法可以通过 windows azure 网站支持 sass 有人可以向我指出一些文档吗 或者如果可能的话现在就让我知道 我特别希望支持祖布基金会 http foundation zurb com index ht
  • Pandas:如果预定义列表中不存在,则将列值替换为空

    我有一个清单 X 其中包含列的一组合法值 说吧 我有专栏A 我想替换 设置 为空字符串 中的元素df A 如果它们的值不在 X 中 我怎样才能在 Pandas 中有效地做到这一点 我知道有isin 但这只是检查值是否存在并返回一系列 Tru
  • 通过Windows中的命令行工具合并两个png?

    我正在寻找一个可以通过命令行 Windows 7 使用的工具来合并两个相同大小的 png 到目前为止 我在搜索方面运气不佳 因为我见过的大多数工具都是相当笨重的应用程序 它们似乎不针对简单的操作 我想用覆盖图像中的非透明像素覆盖不透明基本图
  • 情节 orca 无法在 aws ec2 实例上工作

    我跟着this https github com plotly orca安装conda plotly orca在 AWS EC2 实例上 构建于anaconda python3图像 但击中Cannot open shared object调
  • WIX如何从自定义操作访问源文件

    我有一个 WIX 安装应用程序和许多源文件
  • 如何防止行高在顶部添加边距?

    每当我使用大line height like 1 6em它总是在文本的最顶部添加我不想要的边距 例子 http jsfiddle net EstpJ 1 http jsfiddle net EstpJ 1 我希望文本的边框清晰 并且没有任何
  • 分布式erlang安全如何?

    我想要有 2 个独立的 erlang 节点可以相互通信 so node a myhost将能够发送消息至b myhost 有没有办法限制节点a myhost 所以只有来自 a 的函数安全模块可以被召唤b myhost 它应该是这样的 a m
  • twitter bootstrap - 背景颜色

    我正在尝试更改引导程序的背景颜色和不透明度 我有以下 CSS well opacity 0 9 opacity 0 1 moz opacity 0 9 opacity 0 1 webkit opacity 0 9 opacity 0 1 b
  • CodeIgniter 中视图中的 $this 关键字

    我试图理解如何 this gt load gt view works insideCodeIgniter 中的视图文件的一部分 core Controller php 正在调用 core Loader php 然后调用 ci load 后者
  • 读取thunderbird地址mab文件内容

    我的 TBIRD 地址簿上有几个地址列表 每次我需要编辑包含在多个列表中的地址时 查找哪个列表包含要修改的地址都是一件很痛苦的事情 作为一个帮助工具 我想阅读几个文件 并只给用户一个列表 xxx MAB 文件仅包含一次搜索的搜索地址 有了生
  • 在 R 中将字符串拆分为新行[重复]

    这个问题在这里已经有答案了 我有一个如下数据集 Country Region Molecule Item Code IND NA PB102 FR206985511 THAI AP PB103 BA 107603 F000113361 10
  • PHPUnit、接口和命名空间 (Symfony2)

    我目前正在为 Symfony2 开发一个开源包 并且真的希望它在单元测试覆盖率和一般可靠性方面成为最优秀的 但是由于我缺乏 PHPUnit 知识 或复杂的场景 谁知道 目前 我有一个 Mailer 类 用于处理个人邮件场景 它看起来有点像这
  • 找不到 docker 命令

    我在Mac上安装了docker 安装成功 它还正在运行 并尝试在终端中执行以下命令 docker v 请参阅以下错误 bash docker command not found 我该如何解决这个问题 在 Windows 中这些命令运行良好
  • 需要指南针陀螺仪帮助

    我需要一个游戏对象指向北方 并且我想将其与 gyro attitude 输入结合起来 我曾尝试一步完成此任务 但没有成功 也就是说 我无法制作任何我在网上找到的陀螺仪脚本 以满足始终指向北方的额外要求 相信我 我已经尝试了所有能找到的关于这
  • Angular2 RC6 - 在我的子模块中导入 BrowserModule

    I have DashboardModule导入到我的根目录中AppModule 在组件模板中DashboardModule I use ngFor 它声明于BrowserModule 正是在CommonModule进口者BrowserMo
  • database.yml 中的 pool 选项有什么用

    database yml 中最广泛使用的选项如下 adapter encoding database pool username password socket host port timeout 上面大部分的用法我都知道 除了pool 所
  • 如何将一个数字分成多个部分,使结果之和等于输入?

    我试图将一个数字分成多个部分 以便各部分的总和等于输入数字 如果我有 3 99 并且需要分成两部分 则预期输出为 2 和 1 99 2 1 99 3 99 如果我需要将 3 99 分成 3 部分 则预期输出为 1 3 1 3 和 1 39