#include <stdio.h>
int fibonacci(int n) {
if (n == 0 || n == 1) return 1;
int a = 1, b = 1, temp;
for (int i = 2; i <= n; i++) {
temp = a + b;
a = b;
b = temp;
}
return b;
}
int power(int n, int k) {
int result = 1;
for (int i = 0; i < k; i++) {
result *= n;
}
return result;
}
int my_abs(int x) {
return (x < 0) ? -x : x;
}
int main() {
int k;
int min_n = 1;
int min_diff = 2147483647;
for (int n = 1; n <= 100; n++) {
int fn = fibonacci(n);
int nk = power(n, k);
int diff = my_abs(fn - nk);
if (diff < min_diff) {
min_diff = diff;
min_n = n;
}
}
printf("fnとn^kの差が最小になるnは: %d\n", min_n
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgZmlib25hY2NpKGludCBuKSB7CiAgICBpZiAobiA9PSAwIHx8IG4gPT0gMSkgcmV0dXJuIDE7CiAgICBpbnQgYSA9IDEsIGIgPSAxLCB0ZW1wOwogICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgdGVtcCA9IGEgKyBiOwogICAgICAgIGEgPSBiOwogICAgICAgIGIgPSB0ZW1wOwogICAgfQogICAgcmV0dXJuIGI7Cn0KCgppbnQgcG93ZXIoaW50IG4sIGludCBrKSB7CiAgICBpbnQgcmVzdWx0ID0gMTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgazsgaSsrKSB7CiAgICAgICAgcmVzdWx0ICo9IG47CiAgICB9CiAgICByZXR1cm4gcmVzdWx0Owp9CgoKaW50IG15X2FicyhpbnQgeCkgewogICAgcmV0dXJuICh4IDwgMCkgPyAteCA6IHg7Cn0KCmludCBtYWluKCkgewogICAgaW50IGs7CiAgICBwcmludGYoIuaVtOaVsCBrIOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhDogIik7CiAgICBzY2FuZigiJWQiLCAmayk7CgogICAgaW50IG1pbl9uID0gMTsKICAgIGludCBtaW5fZGlmZiA9IDIxNDc0ODM2NDc7IAoKICAgIGZvciAoaW50IG4gPSAxOyBuIDw9IDEwMDsgbisrKSB7CiAgICAgICAgaW50IGZuID0gZmlib25hY2NpKG4pOwogICAgICAgIGludCBuayA9IHBvd2VyKG4sIGspOwogICAgICAgIGludCBkaWZmID0gbXlfYWJzKGZuIC0gbmspOwoKICAgICAgICBpZiAoZGlmZiA8IG1pbl9kaWZmKSB7CiAgICAgICAgICAgIG1pbl9kaWZmID0gZGlmZjsKICAgICAgICAgICAgbWluX24gPSBuOwogICAgICAgIH0KICAgIH0KCiAgICBwcmludGYoImZu44Gobl5r44Gu5beu44GM5pyA5bCP44Gr44Gq44KLbuOBrzogJWRcbiIsIG1pbl9uKTsKICAgIHJldHVybiAwOwp9