【发布时间】:2014-09-05 19:21:08
【问题描述】:
我在让算法计算循环中使用的数字总和时遇到问题。
让我概述一下基本原则:
1 2 3 4 5 6 7 8 9 = 9 位数
1 2 3 4 5 6 7 8 9 10 = 11 位
我曾尝试寻找解决方案,但找不到合适的解决方案。
基本思想是我有一个已知的数字 n,它将代表数字计数的结束。
计数从 1 开始,所以 1 <= n <= 10000。
我想到的第一件事就是数数:
while(numdig != 0) {
numDig = n/10;
digCount++;
}
然后在一个循环中继续循环,但我发现自己对第二个循环感到困惑。之后我想到了一个会使用大量 if 的循环,这将是一种非常不正确的解决问题的方法。
我希望这个问题是可以理解的。
谢谢
【问题讨论】:
-
你有困难的部分,迭代数字并使用你的代码来计算数字。
digCount = 0; for (int i = 1; i < n; i++) { int numDig = i; /*you while loop here*/ } -
不知道有没有使用
stringstream的简单解决方案