首页 > 解决方案 > 如何将一些数字合二为一,例如 1,7,3 = 173?

问题描述

几个小时以来,我一直在考虑如何做到这一点。

例如,让我们给出一个长度不定的数组 Arr[] = {1,2,3,4} 。

(不确定,因为它可以有任何其他数量的元素)

很明显,最好的数学方法可能是将第一个元素* 1000,+第二个元素* 100,+第三个元素* 10,+第四个元素相乘。

所以这样的结果将是:1000 + 200 + 30 + 4 = 1234。

理论很简单,但是你怎么能在'for'循环上实现它,事实上它可以有任何其他数量的元素,例如让我们假设它可以有7个元素,操作现在需要一个“第七元素 * 100000”?我一直在考虑这个问题,但我想不出一种方法可以将它写在“for”上,从而使这在同一个循环中成为可能。你们对我怎么能这样做有什么建议吗?

谢谢!

标签: c++cfor-loopmath

解决方案


假设你所有的整数都只是以 10 为底的一位数:

int result = 0;
for (int i = 0; i < len; ++i) {
    result = result*10 + arr[i];
}

推荐阅读