Official

D - Measure Editorial by leaf1415


本問題に正解するには、問題文中にある通りに各 \(i = 0, 1, 2, \ldots, N\) について \(s_i\) を求め、答えとなる文字列 \(s_0s_1\ldots s_N\) を構成すれば良いです。

\(i = 0, 1, 2, \ldots, N\) のそれぞれについて処理を行うことや、\(j\) の候補として \(1\) から \(9\) の整数それぞれを調べることには、プログラミング言語の標準的な機能である繰り返しの機能( for 文など)を用いることができます。

以下に、C++ 言語による正解例を記載します。

#include <iostream>
using namespace std;

int main(void)
{
  int n;
  cin >> n;
  
  string s;
  for(int i = 0; i <= n; i++){
    s += "-";
    for(int j = 1; j <= 9; j++){
      if(n % j == 0 && i % (n/j) == 0){
        s[i] = j + '0';
        break;
      }
    }
  }
  cout << s << endl;
  
  return 0;
}

posted:
last update: