ABC083B - Some Sums

atcoder.jp

各桁の和を求める部分、とくに各桁の値を取り出すのに悩んだ。 「10 で割った余りを求める→10で割る」を繰り返す泥臭い方法になったけど、 もっとスマートに書けないものかな。

using System;

namespace ABC083B
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = Console.ReadLine().Split(' ');
            var n = int.Parse(input[0]);
            var a = int.Parse(input[1]);
            var b = int.Parse(input[2]);

            var answer = 0;
            for(var i = 1; i <= n; i++)
            {
                var sumOfEachDigit = 0;
                for (var j = i; j > 0; j /= 10)
                {
                    sumOfEachDigit += j % 10;
                }

                if (a <= sumOfEachDigit && sumOfEachDigit <= b)
                {
                    answer += i;
                }
            }
 
            Console.WriteLine(answer); 
        }
    }
}