93537


<https://atcoder.jp/contests/abc083/tasks/abc083_b>

下記コードにて出力結果が"0"になってしまうのですが，どこの部分を修正すればいいかわからず，ご教示頂けると幸いです。

[code]

    入力
    20 2 5
    
    出力
    84
    ※20以下の整数のうち，各桁の和が2以上5以下なのは2,3,4,5,11,12,13,14,20です。これらの合計である84を出力。
    
[/code]

[code]

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int log_2(int n, int a, int b) {
        
        int ans = 0;
        for (int i = 1; i <= n; i++) {
            int sum = 0;
            int num = i;
            while (num <= 0) {
                sum += num % 10;
                //cout << sum << endl;
                num /= 10;
            }
            //cout << sum << endl;
            if (a <= sum && sum <= b) {
                ans += i;    
            }
            
        }
        
        return ans;
    }
    
    
    int main() {
        int n, a, b;
        cin >> n >> a >> b;
        
        cout << log_2(n, a, b) << endl;
        
        return 0;
    }
    
    
[/code]


CC BY-SA 4.0
2023-01-24T02:38:10.570
93536
2023-01-24T03:32:51.597
56641
question
c++
出力結果の違いで原因の特定できない


`num` の初期値は `1` であるから `while (num <= 0)` 判定をしてしまうと当然一度もループを回ることはありません（なので
`ans=0` で終了）

この質問に対する回答はこんなもんで十分でしょ。オイラがこの設問の答え書いてもいいんだけどそれは微妙に面白くないし、設問に対する答えは自己回答してみるのもよろしいかと思います。  
# 最終的に `84` と１つ表示されればいいんだよね？


CC BY-SA 4.0
2023-01-24T03:32:51.597
93537
2023-01-24T03:32:51.597
8589
93536
answer