c++ - 如何将一些数字合二为一,例如 1,7,3 = 173?
问题描述
几个小时以来,我一直在考虑如何做到这一点。
例如,让我们给出一个长度不定的数组 Arr[] = {1,2,3,4} 。
(不确定,因为它可以有任何其他数量的元素)
很明显,最好的数学方法可能是将第一个元素* 1000,+第二个元素* 100,+第三个元素* 10,+第四个元素相乘。
所以这样的结果将是:1000 + 200 + 30 + 4 = 1234。
理论很简单,但是你怎么能在'for'循环上实现它,事实上它可以有任何其他数量的元素,例如让我们假设它可以有7个元素,操作现在需要一个“第七元素 * 100000”?我一直在考虑这个问题,但我想不出一种方法可以将它写在“for”上,从而使这在同一个循环中成为可能。你们对我怎么能这样做有什么建议吗?
谢谢!
解决方案
假设你所有的整数都只是以 10 为底的一位数:
int result = 0;
for (int i = 0; i < len; ++i) {
result = result*10 + arr[i];
}
推荐阅读
- .net-core - .NET Core 3.1 GetService 返回 null
- python - 一个函数的 Python 生成线程
- python - 泡菜数据未加载
- c# - C# 类型安全的 JSON 行反序列化
- c# - SSL/TLS (HTTPS) 的 C# 目标主机名始终为空
- clojure - 为什么不能在 deftest 周围应用 with-redefs?
- typescript - 如何在 Typescript 中将具有给定类型的所有属性转换为另一个属性?
- cordova - Cordova 请求转发代理
- rust - actix 使用字符串传递应用程序状态
- javascript - 当我使用 2 个表格时,签名板不起作用