欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C語(yǔ)言實(shí)現(xiàn)撲克牌計(jì)算24點(diǎn)

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

題目描述:

一副撲克牌的每張牌表示一個(gè)數(shù)(J、Q、K分別表示11、12、13,兩個(gè)司令都表示6)。任取4張牌,即得到4個(gè)1~13的數(shù),請(qǐng)?zhí)砑舆\(yùn)算符(規(guī)定為加+ 減- 乘* 除/ 四種)使之成為一個(gè)運(yùn)算式。每個(gè)數(shù)只能參與一次運(yùn)算,4個(gè)數(shù)順序可以任意組合,4個(gè)運(yùn)算符任意取3個(gè)且可以重復(fù)取。運(yùn)算遵從一定優(yōu)先級(jí)別,可加括號(hào)控制,最終使運(yùn)算結(jié)果為24。請(qǐng)輸出一種解決方案的表達(dá)式,用括號(hào)表示運(yùn)算優(yōu)先。如果沒(méi)有一種解決方案,則輸出-1表示無(wú)解。

輸入格式說(shuō)明:

輸入在一行中給出4個(gè)整數(shù),每個(gè)整數(shù)取值在[1, 13]。

輸出格式說(shuō)明:

輸出一種解決方案的表達(dá)式,用括號(hào)表示運(yùn)算優(yōu)先。如果沒(méi)有解決方案,請(qǐng)輸出-1。

樣例輸入與輸出:

解答說(shuō)明:

四個(gè)操作數(shù),三個(gè)操作符,兩個(gè)括號(hào),有以下五種計(jì)算模式

((A op B) op C) op D

(A op (B op C)) op D

A op (B op (C op D))

A op ((B op C) op D)

(A op B) op (C op D)

將每一種模式寫(xiě)成函數(shù),最后采用窮舉法找到計(jì)算結(jié)果為24的算式。

源碼:

//注意要在輸出結(jié)果后面加\n,不然會(huì)有格式錯(cuò)誤,坑爹啊!!!
#include "stdio.h"
#include "stdlib.h"
 
char op[5]={'#','+','-','*','/',};
 
float cal(float x,float y,int op)
{
 switch(op)
 {
 case 1:return x+y;
 case 2:return x-y;
 case 3: return x*y;
 case 4: return x/y;
 }
}
 
float calculate_model1(float i,float j,float k,float t,int op1,int op2,int op3)
{
 float r1,r2,r3;
 r1 = cal(i,j,op1);
 r2 = cal(r1,k,op2);
 r3 = cal(r2,t,op3);
 return r3;
}
 
float calculate_model2(float i,float j,float k,float t,int op1,int op2,int op3)
{
 float r1,r2,r3;
 r1 = cal(j,k,op2);
 r2 = cal(i,r1,op1);
 r3 = cal(r2,t,op3);
 return r3;
}
 
float calculate_model3(float i,float j,float k,float t,int op1,int op2,int op3)
{
 float r1,r2,r3 ;
 r1 = cal(k,t,op3);
 r2 = cal(j,r1,op2);
 r3 = cal(i,r2,op1);
 return r3;
}
 
 
float calculate_model4(float i,float j,float k,float t,int op1,int op2,int op3)
{
 float r1,r2,r3;
 r1 = cal(j,k,op2);
 r2 = cal(r1,t,op3);
 r3 = cal(i,r2,op1);
 return r3;
}
 
float calculate_model5(float i,float j,float k,float t,int op1,int op2,int op3)
{
 float r1,r2,r3 ;
 r1 = cal(i,j,op1);
 r2 = cal(k,t,op3);
 r3 = cal(r1,r2,op2);
 return r3;
}
 
int get24(int i,int j,int k,int t)
{
 int op1,op2,op3;
 int flag=0;
 for(op1=1;op1<=4;op1++)
  for(op2=1;op2<=4;op2++)
   for(op3=1;op3<=4;op3++)
   {
    if(calculate_model1(i,j,k,t,op1,op2,op3)==24){
  printf("((%d%c%d)%c%d)%c%d\n",i,op[op1],j,op[op2],k,op[op3],t);flag = 1;goto OUT;
    }
    if(calculate_model2(i,j,k,t,op1,op2,op3)==24){
  printf("(%d%c(%d%c%d))%c%d\n",i,op[op1],j,op[op2],k,op[op3],t);flag = 1;goto OUT;
  }
    if(calculate_model3(i,j,k,t,op1,op2,op3)==24){
  printf("%d%c(%d%c(%d%c%d))\n",i,op[op1],j,op[op2],k,op[op3],t);flag = 1;goto OUT;
  }
    if(calculate_model4(i,j,k,t,op1,op2,op3)==24){
  printf("%d%c((%d%c%d)%c%d)\n",i,op[op1],j,op[op2],k,op[op3],t);flag = 1;goto OUT;
  }
    if(calculate_model5(i,j,k,t,op1,op2,op3)==24){
  printf("(%d%c%d)%c(%d%c%d)\n",i,op[op1],j,op[op2],k,op[op3],t);flag = 1;goto OUT;
  }
   }
 
OUT: return flag;
}
 
int main()
{
 int x,y,m,n;
 int i,j,k,t;
 int in[4];
 int flag;
 for(i=0;i<4;i++)
  scanf("%d",&in[i]);
 for(i=0;i<4;i++){
  for(j=0;j<4;j++){
   if(j==i) continue;
   for(k=0;k<4;k++){
    if(i==k||j==k) continue;
    for(t=0;t<4;t++){
     if(t==i||t==j||t==k) continue;
     x = in[i];
     y = in[j];
     m = in[k];
     n = in[t];
     flag = get24(x,y,m,n);
     if(flag ==1) goto END;
    }
   }
  }
 }
 if(flag == 0)
  printf("-1\n");
 
 END: // system("pause");
 
 return 0;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:C語(yǔ)言實(shí)現(xiàn)紙牌24點(diǎn)小游戲

欄    目:C語(yǔ)言

下一篇:C語(yǔ)言實(shí)現(xiàn)單詞小助手功能完善版

本文標(biāo)題:C語(yǔ)言實(shí)現(xiàn)撲克牌計(jì)算24點(diǎn)

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/159.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有