3.7.8.103 7 1 2算24点点小天才什么办

8、8、3、3算24点
8、8、3、3算24点
如题。期待答案。
十大补分~欢迎移步十大登记帖登记。感谢您 ...
8÷(3-8÷3)=24
【个人评分】妈鸡!!!西神居然还活着!!! ...
已婚妇女即人妻
下一个是不是9933算24 = =
9+9+3+3=24【天啦我好聪明
【个人评分】师姐表卖萌。。
下一个是不是8844算24 = =
8+8+4+4=24【天啦我好聪明
此id号码已作废
8+8+3+3=24
好有道理我竟无言以对!
Goldly gorgeous sensei eat, chill in hall full be cheerz
DD网史上作风最乱版主初代目 ... ...
引用:原帖由&&&&于
12:33 发表
8+8+3+3=24 留下证据!
戳→世界从此清净了
无限大な梦のあとの
师兄你一定是故意的引用:原帖由&&&&于
12:33 发表
8+8+3+3=24
有没有人能总结一下经验。
其实我对这个的定义还停留在这个必须为整数的时候
看来高手来自民间哇,
顶顶更健康
这种东西不能用固定思维
发散思维比较好。扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
巧算24点.1:3:8:10怎么算
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
(10-1)/3 *8=24
为您推荐:
其他类似问题
扫描下载二维码 上传我的文档
 下载
 收藏
粉丝量:83
该文档贡献者很忙,什么也没留下。
 下载此文档
10以内能算24点的牌组(算式)
下载积分:600
内容提示:10以内能算24点的牌组(算式)
文档格式:PDF|
浏览次数:400|
上传日期: 22:37:58|
文档星级:
全文阅读已结束,如果下载本文需要使用
 600 积分
下载此文档
该用户还上传了这些文档
10以内能算24点的牌组(算式)
关注微信公众号几十年前全世界就流行一种数字游戏,至今仍有人乐此不疲.在中国我们把这种游戏称为&算24点&。您作为游戏者将得到4个1~9之间的自然数作为操作数,而您的任务是对这4个操作数进行适当的算术运算,要求运算结果等于24。
您可以使用的运算只有:+,-,*,/,您还可以使用()来改变运算顺序。注意:所有的中间结果须是整数,所以一些除法运算是不允许的(例如,(2*2)/4是合法的,2*(2/4)是不合法的)。下面我们给出一个游戏的具体例子:
若给出的4个操作数是:1、2、3、7,则一种可能的解答是1+2+3*7=24。
输入输出格式
输入格式:
只有一行,四个1到9之间的自然数。
输出格式:
如果有解的话,只要输出一个解,输出的是三行数据,分别表示运算的步骤。其中第一行是输入的两个数和一个运算符和运算后的结果,第二行是第一行的结果和一个输入的数据、运算符、运算后的结果,或者是另外两个数的输出结果;第三行是前面的结果第二行的结果或者剩下的一个数字、运算符和&=24&。如果两个操作数有大小的话则先输出大的。
如果没有解则输出&No answer!&
如果有多重合法解,输出任意一种即可。
注:所有运算结果均为正整数
输入输出样例
输入样例#1:
输出样例#1:
感谢chenyy提供special judge
DFS,每层枚举可用牌中的两张,枚举四种运算,符合条件(结果为正整数)就dfs到下一层运算,遇到算了3次凑到24点的情况就跳出函数,输出答案。
因为没看到结果为正整数,WA了四五次,悲伤。
搜索代码看着长,其实是基本相同的代码复制了四份2333
&运算的部分为什么不写成函数?因为虽然这四种操作的代码结构一样,但是运算都有细微差别,就算写成函数,也得写四个特判,反而麻烦。不如写一个,复制四份,改一下每份的运算符号,粗暴但高效。(其实是为偷懒找借口)
1 /*by SilverN*/
2 #include&algorithm&
3 #include&iostream&
4 #include&cstring&
5 #include&cstdio&
6 #include&cmath&
7 #include&queue&
8 using namespace
9 struct clc{
13 }ans[60000];
14 int a[5];
15 int hd=1,tl=1;
16 int vis[5];
17 bool dfs(int cnt,int dep){
if(dep&3)return 0;
int i,j,k;
for(i=1;i&=i++)
if(vis[i])continue;
for(j=1;j&=j++){
if(i==j)continue;
if(vis[j])continue;
int tmp1=a[i],tmp2=a[j];
a[i]=a[i]+a[j];a[j]=0;vis[j]=1;
ans[tl++]=(clc){tmp1,tmp2,'+',a[i]};
if((a[i]==24 && tl==4) || dfs(4,dep+1))return 1;
tl--;vis[j]=0;
a[i]=tmp1;a[j]=tmp2;
a[i]=a[i]-a[j];a[j]=0;vis[j]=1;
ans[tl++]=(clc){tmp1,tmp2,'-',a[i]};
if(a[i]&0)//运算结果必须是正整数
if((a[i]==24 && tl==4) || dfs(4,dep+1))return 1;
tl--;vis[j]=0;
a[i]=tmp1;a[j]=tmp2;
a[i]=a[i]*a[j];a[j]=0;vis[j]=1;
ans[tl++]=(clc){tmp1,tmp2,'*',a[i]};
if((a[i]==24 && tl==4) || dfs(4,dep+1))return 1;
tl--;vis[j]=0;
a[i]=tmp1;a[j]=tmp2;
if(!a[j])continue;
if(a[i]%a[j]!=0)continue;
a[i]=a[i]/a[j];a[j]=0;vis[j]=1;
ans[tl++]=(clc){tmp1,tmp2,'/',a[i]};
if((a[i]==24 && tl==4) || dfs(4,dep+1))return 1;
tl--;vis[j]=0;
a[i]=tmp1;a[j]=tmp2;
58 int main(){
for(i=1;i&=4;i++) scanf("%d",&a[i]);
if(dfs(4,1)){
for(i=1;i&i++){
if(ans[i].c=='*' || ans[i].c=='+')
if(ans[i].a&ans[i].b)swap(ans[i].a,ans[i].b);
printf("%d%c%d=%d\n",ans[i].a,ans[i].c,ans[i].b,ans[i].res);
else printf("No answer!\n");
阅读(...) 评论()

我要回帖

更多关于 3 5 7 7 算24点 的文章

 

随机推荐