白俊2292号です.
997 ワード
白駿2292号は、ハニカムの真ん中から入力ルームまでの最短距離の問題です.最短距離を求める問題としては難しいと思われますが、実は一つのルールで構成されています.
1が中心なら、
2~7->部屋2個、男6個
8~19->3部屋、12部屋
20~37->部屋4個、部屋18個
ロ、部屋の増加数は等差数列になっています.
繰り返しドアを回すと、1変数に6を加えると、部屋に数を増やす等差数列を形成することができます.これにより、部屋範囲を変更しながら、その間に入力された変数nがあれば、出力する変数を出力することができる.
コードに変換:
1が中心なら、
2~7->部屋2個、男6個
8~19->3部屋、12部屋
20~37->部屋4個、部屋18個
ロ、部屋の増加数は等差数列になっています.
繰り返しドアを回すと、1変数に6を加えると、部屋に数を増やす等差数列を形成することができます.これにより、部屋範囲を変更しながら、その間に入力された変数nがあれば、出力する変数を出力することができる.
コードに変換:
#include <stdio.h>
#include <stdlib.h>
int main(void){
int num;
scanf("%d", &num);
int a = 0; int start = 2; int i;
if (num == 1) {
printf("1\n");
return 0;
}
i = 2;
for (;;) {
a += 6;
if (start <= num && start + a - 1 >= num) {
break;
}
else {
i++;
start += a;
}
}
printf("%d\n", i);
return 0;
}
Reference
この問題について(白俊2292号です.), 我々は、より多くの情報をここで見つけました https://velog.io/@shinhs9902/백준-2292번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol