白峻14650の道を歩いて新千宿場三(Small)を発見


  • 白駿14605-歩いていると、新天宿三(Small)を発見
  • 質問する
    旭弟は「三」という音節が大好きです.人参、紅参、ナマコ、三星、李春森、三食、三時三食、だから旭済は3を遊ぶことにした.
    3つの数字(0,1,2)でNビット3の倍数を作成します.作った倍数は自然水二森です.0で始まる数はできない数です3の倍数はいくつありますか.
    に答える
    3の倍数にするには、1桁あたりの合計が3の倍数でなければなりません.
    Nの範囲は最大9なので、Brootforceで解けるといいです!
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int N;
    int cnt = 0;
    
    void brute_force(string& str, int cur) {
    	str += cur + '0';
    	if (str.length() == N) {
    		// 3의 배수가 되는지 검사
    		int sum = 0;
    		for (int i = 0; i < N; ++i) {
    			sum += str[i] - '0';
    		}
    		if (sum % 3 == 0) {
    			cnt++;
    		}
    		return;
    	}
    	else {
    		for (int i = 0; i < 3; ++i) {
    			brute_force(str, i);
    			str.pop_back();
    		}
    	}
    }
    int main(void) {	
    	cin >> N;
    	for (int i = 1; i < 3; ++i) {
    		string str = "";
    		brute_force(str, i);
    	}
    
    	cout << cnt << "\n";
    	return 0;
    }
    似たような問題
  • 白駿14651-歩いていると、新千宿場三(Large)を発見
    上の問題は簡単ですね.