코딩도장

시계바늘사이의 각도

철수의 아날로그 시계는 시침과 분침이 모두 매초 항상 일정한 속도로 움직인다고 한다. 즉 1초마다 시침과 분침의 위치가 모두 변한다. 이때 0도 이상 180도 이하의 각도A를 입력하면 하루동안(00:00:00부터 23:59:59) 시침과 분침이 이루는 각도가 A와 일치하는 순간을 모두 출력하는 프로그램을 작성하라. 
단 시침과 분침이 이루는 각도는 항상 180도 이하로 환산하여 생각한다. (ex>A가 90이면, 시침과 분침사이 각도가 90도와 270도인 경우 모두 해당된다.)
입력되는 A는 정수이고, 출력되는 시간은 hh:mm:ss형식으로 시간, 분, 초를 모두 2자리 자연수로 출력하되 1자리수인 경우는 앞에 0을 붙여서 출력한다.

2019年06月11日 13:37

왕초보

(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

1개의 풀이가 있습니다.

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
 int angle;
 cin >> angle;
 int hour = 0, minute = 0, second = 0;
 for (; hour < 24; ++hour)
 {
 int s_hour = hour;
 if (hour > 12) s_hour = hour - 12;
 for (minute = 0; minute < 60; ++minute)
 {
 for (second = 0; second < 60; ++second)
 {
 double cal_angle = fabs((double)s_hour * 30 + ((double)1 / 120) * second + minute * 0.5 - (double)minute * 6 - second * 0.1);
 if (cal_angle == (double)angle || cal_angle == 360 - (double)angle)
 {
 printf("%02d::%02d::%02d\n", hour, minute, second);
 }
 }
 }
 }
 return 0;
}

2019年07月19日 16:40

드드드드드드

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

(注記) 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.


언어별 풀이 현황
전 체 x 19
haskell x 1
python x 14
javascript x 1
cpp x 1
cs x 1
기 타 x 1
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /