Codeforces Round #268 (Div. 2) C 24 Game
来源:互联网 发布:淘宝会员名大全简单 编辑:程序博客网 时间:2024/06/05 03:09
也是好久没有写博客,代码最近也少敲了。一直在学数学来着,前些天一场cf打下来又重新变为蓝名,写一下帮助我加了200多分的C题。
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;然后每4个数字可以凑成一个0。那么4个一循环重复输出这样的式子就可以了。
#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",n-fuck,n-fuck);printf("%d - %d = -1\n",n-1-fuck,n-fuck);printf("%d - %d = 1\n",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",n-fuck,n-fuck);printf("%d - %d = -1\n",n-1-fuck,n-fuck);printf("%d - %d = 1\n",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",n-fuck,n-fuck);printf("%d - %d = -1\n",n-1-fuck,n-fuck);printf("%d - %d = 1\n",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",n-fuck,n-fuck);printf("%d - %d = -1\n",n-1-fuck,n-fuck);printf("%d - %d = 1\n",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;}
0 0
- Codeforces Round#268(Div 2)C 24 Game
- Codeforces Round #268 (Div. 2) C 24 Game [构造]
- Codeforces Round #268 (Div. 2) C 24 Game
- Codeforces Round #268 (Div. 2)+24 Game
- Codeforces Round #419 (Div. 2) C.Karen and Game 思维
- Codeforces Round #419 (Div. 2) C. Karen and Game 题解
- (Codeforces Round #426 (Div. 2)) C.The Meaningless Game
- Codeforces Round #426 (Div. 2) C. The Meaningless Game
- Codeforces Round #426 (Div. 2)-C. The Meaningless Game
- Codeforces Round #426 (Div. 2) C The Meaningless Game
- Codeforces Round #426 (Div. 2) C. The Meaningless Game
- Codeforces Round #426 (Div. 2) C. The Meaningless Game
- Codeforces Round #419 (Div. 2) C. Karen and Game【贪心】
- Codeforces Round #426 (Div. 2) C The Meaningless Game
- Codeforces Round #426 (Div. 2) C. The Meaningless Game C. The Meaningless Game
- 【Codeforces Round #268 (Div. 1)】A. 24 Game【归纳法】
- Codeforces-Round-#357-(Div.-2)-Economy-Game
- Codeforces Round #268 (Div. 2) C
- 网络技术员面试自我介绍范文
- 使用BIND来搭建简单的主辅DNS服务器
- swift开发知识点滴
- tomcat 部署
- 使用easyui中的datagrid 分页时,向后台传参数page 和rows
- Codeforces Round #268 (Div. 2) C 24 Game
- C语言中数组下标为“-1”的情况(array[-1])
- ALV自动排序求和小计
- 几种随机生成器
- 记一次公司mysql的安装,解压安装方式
- position属性absolute与relative 详解
- display:none与visible:hidden的区别
- 在php中页面跳转(跳转到其他页面或者当前页面),可以用这种写法
- DropListDown控件的数据绑定例子