[プログラマー]124カ国の数字(C++)


質問-124カ国/地域の数値

🤔もんだいぶんせき



すべての数字を表すときは1,2,4しか使いません.
自然数nがパラメータとして与えられると、解関数が完了し、124カ国で使用されるnの値が返される.

😏に答える


n進法とは全く異なる番号付け方式です.
最初から1,2,4を順番に使います.
nをshareに保存して認識します.
3つの数字が交互に現れるので、残りの部分に保存するために%3を行います.
そして3つに分けます.
残りが0の場合は、答えの前に「4」を付けて共有--.
残りが1または2の場合、答えの前に「1」と「2」を付けます.
このプロセスはwhile文で与えられたn値が0になるまで繰り返される.
その結果得られた答えは正解だった.

💻コード#コード#

#include <string>
#include <vector>
using namespace std;

string solution(int n) {
    string answer = "";
    int share = n;
    int remainder = -1;

    while (share != 0) {
        remainder = share % 3;
        share = share / 3;

        if (remainder == 0) { //나누어 떨어질 경우 몫을 1빼준다.
            answer = "4" + answer;
            share--;
        }
        else if (remainder == 1) {
            answer = "1" + answer;
        }
        else if (remainder == 2) {
            answer = "2" + answer;
        }
    }

    return answer;
}