Yuulis.log

Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 379 A - Cyclic | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 11

問題概要

各桁が1以上9以下の整数である3桁の整数  N が与えられる。  N の100の位を  a 、10の位を  b 、1の位を  c としたとき、  b, c, a をこの順に並べた整数と、  c, a, b をこの順に並べた整数をそれぞれ出力せよ。

制約

  • 問題文の通り。

考察

 N を数値として扱う場合、  a, b, c は以下のように計算できる。

  •  a = \Big\lfloor \dfrac{N}{100} \Big\rfloor
  •  b = \Big\lfloor \dfrac{N % 100}{10} \Big\rfloor
  •  c = (N \mod 100) \mod 10

あとは指示通り出力すればよい。

コード

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

// ======================================== //

int main()
{
    int N;
    cin >> N;

    int a = N / 100;
    N %= 100;
    int b = N / 10;
    int c = N % 10;

    cout << b << c << a << " " << c << a << b << endl;
}

atcoder.jp

実装時間: 5分以内

別解 :  N の各桁を文字として扱う

実は、  N の各桁を文字として、入力から1文字ずつ受け取った方がより簡単なコードとなる。

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

// ======================================== //

int main()
{
    char a, b, c;
    cin >> a >> b >> c;

    cout << b << c << a << " " << c << a << b << endl;
}

atcoder.jp