Codeforces Round #268 (Div. 2) C 24 Game
3136 단어 모방 하 다codeforces
24game, 문 제 를 보면 24 시 라 는 느낌 이 들 지만 문 제 는 1 부터 n 까지 모든 숫자 를 사용 해 야 합 니 다. 중간 결 과 를 포함 하여 마지막 으로 24 를 얻 을 수 있 습 니 다.
1 * 2 * 3 * 4 = 24 이기 때문에 4 이하 의 것 은 반드시 부족 할 것 이다.5 는 1 + 2 * 4 + 3 * 5 = 24, 6 은 2 - 1 + 3 * 4 + 5 + 6 = 24, 7 은 1 - 2 + 3 + 4 + 5 + 6 + 7 = 24;
이렇게 계속 미 룰 수 는 없 을 것 이다. 문제 에서 8 의 상황 을 제 시 했 지만 특 판 이 었 다. 그 당시 에 8 의 상황 이 생각 났 다. 4 가 24 를 충분히 모 은 토대 에서 5 - 6 + 8 - 7 = 0 으로 바 뀔 수 있다.같은 이치 로 9, 10, 11 을 얻 을 수 있다.그리고 네 개의 숫자 마다 0 을 모 을 수 있다.그러면 네 개의 반복 출력 이 이런 식 이면 됩 니 다.
#include<stdio.h>
#include<string.h>
void si(int n)
{
int flag=0,fuck=0;
puts("YES");
int w=n-4;
if(w==0) flag=0;
else// , , 0+1=1 ;
{
flag=1;
while(w>0)
{
if(fuck!=0)
printf("0 + %d = %d
",n-fuck,n-fuck);
printf("%d - %d = -1
",n-1-fuck,n-fuck);
printf("%d - %d = 1
",n-2-fuck,n-3-fuck);
puts("-1 + 1 = 0");
w=w-4;
fuck+=4;
}
}
if(flag)
puts("0 + 1 = 1");
puts("1 * 2 = 2");
puts("2 * 3 = 6");
puts("6 * 4 = 24");
}
void wu(int n)
{
int flag=0,fuck=0;
puts("YES");
int w=n-4;
if(w==1) flag=0;
else
{
flag=1;
while(w>1)
{
if(fuck!=0)
printf("0 + %d = %d
",n-fuck,n-fuck);
printf("%d - %d = -1
",n-1-fuck,n-fuck);
printf("%d - %d = 1
",n-2-fuck,n-3-fuck);
puts("-1 + 1 = 0");
w=w-4;
fuck+=4;
}
}
if(flag)
puts("0 + 1 = 1");
puts("2 * 4 = 8");
puts("1 + 8 = 9");
puts("3 * 5 = 15");
puts("9 + 15 = 24");
}
void liu(int n)
{
int flag=0,fuck=0;
puts("YES");
int w=n-4;
if(w==2) flag=0;
else
{
flag=1;
while(w>2)
{
if(fuck!=0)
printf("0 + %d = %d
",n-fuck,n-fuck);
printf("%d - %d = -1
",n-1-fuck,n-fuck);
printf("%d - %d = 1
",n-2-fuck,n-3-fuck);
puts("-1 + 1 = 0");
w=w-4;
fuck+=4;
}
}
if(flag)
puts("0 + 1 = 1");
puts("3 * 4 = 12");
puts("2 - 1 = 1");
puts("1 + 12 = 13");
puts("5 + 13 = 18");
puts("18 + 6 = 24");
}
void qi(int n)
{
int flag=0,fuck=0;
puts("YES");
int w=n-4;
if(w==3) flag=0;
else
{
flag=1;
while(w>3)
{
if(fuck!=0)
printf("0 + %d = %d
",n-fuck,n-fuck);
printf("%d - %d = -1
",n-1-fuck,n-fuck);
printf("%d - %d = 1
",n-2-fuck,n-3-fuck);
puts("-1 + 1 = 0");
w=w-4;
fuck+=4;
}
}
if(flag)
puts("0 + 1 = 1");
puts("1 - 2 = -1");
puts("-1 + 3 = 2");
puts("2 + 4 = 6");
puts("6 + 5 = 11");
puts("11 + 6 = 17");
puts("17 + 7 = 24");
}
int main()
{
int n;
scanf("%d",&n);
if(n<4)
puts("NO");
else if(n%4==0)
si(n);
else if(n%4==1)
wu(n);
else if(n%4==2)
liu(n);
else if(n%4==3)
qi(n);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
아 날로 그 예약 프로그램 (운전면허 시험)최근 한 달 넘 게 주말 내 내 차 를 연습 하 느 라 바쁘다.전에 시 뮬 레이 터 를 한 번 예 약 했 는데 갑자기 일이 생 겨 서 못 갔 어 요.다시 예약 하려 면 3 주 후에 줄 을 서 야 합 니 다.그래서 어...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.