10994 - Simple Addition
Time limit: 3.000 seconds
计算sum{i从右往左数的第一个非0数字,p<=i<=q}。
见代码。。
/*0.016s*/
#include<cstdio>
typedef long long ll;
ll sum(ll n)
{
ll ans = 0, x;
while (n)
{
x = n % 10;
n /= 10;
ans += ((1 + x) * x) / 2 + n * 45;///当个位在循环的时候,高位的朋友你在干嘛?
}
return ans;
}
int main()
{
ll a, b;
while (scanf("%lld%lld", &a, &b), a >= 0)
printf("%lld\n", sum(b) - sum(a - 1));
}

本文详细介绍了10994-SimpleAddition问题的求解思路,通过优化循环和数学公式,实现了快速计算指定区间内非零数字之和的功能。代码示例清晰展示了算法实现过程。
596

被折叠的 条评论
为什么被折叠?



