コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

1000人に1人しか解けないとかいうなぞかけに挑戦した

すごくどうでもいい話

その昔、もしかしたら最近かもしれませんが1000人に1人しか解けないと言われるよく分からないなぞかけがありました。

1+4=5、2+5=12、3+6=21 では 8+11は?

こんなやつですね。もはや数式として成り立っていませんが、左辺を f( a, b) みたいにして数字をこねくりまわしていけば答えを導き出すことができるそうです。


そんなわけで、解答をつくってみた

f:id:andron:20180302055955p:plain

ネットに解答例が腐るほどあるのでアレですがプログラムにしてみました。言語は何でもよかったのですが、手元にあったよさげな言語がC++しかなかったので今回はC++で書いています。

#include <iostream>
using namespace std;

int reddle_a(int a, int b);
int reddle_b(int a, int b);

int main() {
     // riddle_a or riddle_b
	//cout << "1+4=" << reddle(1, 4) << endl; 
	//cout << "2+5=" << reddle(2, 5) << endl; 
	//cout << "3+6=" << reddle(3, 6) << endl; 
	//cout << "8+11=" << reddle(8, 11) << endl;
    return 0;
}

int reddle_a(int a, int b) {
	return a + (a * b);
}

int reddle_b(int a, int b) {
	if (a == 1)
	{
		return a + b;
	}else{
		int c = a + b;
		for (int i=a ; 1 < i; --i) {
			a--;
			b--;
			c += a + b;
		}
		return c;
	}
}

2個目の解法(riddle_b)コードがなんか汚いなって感じるんだけど、手探りでこねくり回してたしまあ仕方ない。ちなみに、なぞかけそのものの正解がなんなのかは知りません。40になるパターンもあるそうだけど、それはどうやって作るかまあ知らない……。


ま、今日はどうでもいい話がしたくて書いた記事だし答えが何かなんてどうでもいいですね。みなさんはこの答え、何になりましたか?