つよつよエンジニアになりたい

つよつよエンジニアになりたいエンジニアが日々の学びや気づきをアウトプットしていきます

ABC101_B問題の解説

AtCoder Beginner Contest 101のB問題を解いたので解法をメモしておきます。

解法

数値としてNを受け取り、文字列に変換したものを範囲for文にかけます。 for内ではcharとして扱われるためcharからintに変換して足し合わせます。 Nを足し合わせた数で割ってあまりがなかったらYesを出力します。

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

int main()
{
  int n;
  cin >> n;
  string s = to_string(n);
  int sn = 0;
  for (char S : s) {
    sn += int(S-'0');
  }
  if (n % sn == 0) cout << "Yes" << endl;
  else cout << "No" << endl;
}

参考

C++で数値と文字列の相互変換 - Qiita