頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

ABC083 B - Some Sums

問題はこちら atcoder.jp

方針

to_stringを使ってみたかったので複雑になっています。

digit_sum+=i_str[j]-'0'-'0'については,こちらを参考にしました。ASCIIコードでは文字'0'48に対応しているらしいです。

コード

#include <bits/stdc++.h>
using namespace std;

int main(){
    int n,a,b;
    cin>>n>>a>>b;

    int sum_total=0;
    int digit_sum=0;
    string i_str;

    for(int i=1; i<=n; i++){
        digit_sum=0;
        i_str=to_string(i);
        for(int j=0; j<i_str.size(); j++){
            digit_sum+=i_str[j]-'0';
        }
        if(a<=digit_sum && digit_sum<=b){
            sum_total+=i;
        }
    }

    cout<<sum_total<<endl;   
}