1. 程式人生 > >華為OJ——24點遊戲演算法

華為OJ——24點遊戲演算法

24點遊戲演算法

題目描述

問題描述:給出41-10的數字,通過加減乘除,得到數字為24就算勝利輸入:41-10的數字。[數字允許重複,測試用例保證無異常數字]輸出:true or false

輸入描述:

輸入4int整數

輸出描述:

返回能否得到24點,能輸出true,不能輸出false

輸入例子:

7 2 1 10

輸出例子:

true

解答程式碼:

#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<fstream>
#define N 4
using namespace std;

int flag=0;
int num[N];

void solveByDfs(int index,int result,int num[])
{
    if(result==24)
    {
        flag=1;
        return ;
    }
    if(result > 24 || index>=4)
        return ;
    for(int choose=0; choose<4; choose++)
    {
        switch(choose)
        {
        case 0:
            solveByDfs(index+1,result+num[index],num);
            break;
        case 1:
            solveByDfs(index+1,result-num[index],num);
            break;
        case 2:
            solveByDfs(index+1,result*num[index],num);
            break;
        case 3:
            solveByDfs(index+1,result/num[index],num);
            break;
        }
        if(flag)
            return;
    }
}

int main()
{
    int test=0;
    while(cin>>num[0]>>num[1]>>num[2]>>num[3])
    {
        flag=0;
        test=0;
        sort(num,num+4);
        do
        {
            solveByDfs(0,test,num);
        }
        while(next_permutation(num,num+4));
        if(flag)
            cout<<"true"<<endl;
        else
            cout<<"false"<<endl;
    }

    return 0;
}

相關推薦

OJ——24遊戲演算法

24點遊戲演算法 題目描述 問題描述:給出4個1-10的數字,通過加減乘除,得到數字為24就算勝利輸入:4個1-10的數字。[數字允許重複,測試用例保證無異常數字]輸出:true or false 輸

OJ 初級:24遊戲演算法

描述 問題描述:給出4個1-10的數字,通過加減乘除,得到數字為24就算勝利輸入:4個1-10的數字。[數字允許重複,測試用例保證無異常數字]輸出:true or false 知識點 迴圈

機試067】24遊戲演算法

題目描述: 給出4個1-10的數字,通過加減乘除,得到數字為24就算勝利 輸入: 4個1-10的數字。[數字允許重複,但每個數字僅允許使用一次,測試用例保證無異常數字] 輸出: true or false Java實現: import java.util.Arra

24遊戲演算法 (無腦遞迴暴力破解)

題目描述 問題描述:給出4個1-10的數字,通過加減乘除,得到數字為24就算勝利 輸入: 4個1-10的數字。[數字允許重複,但每個數字僅允許使用一次,測試用例保證無異常數字] 輸出: true or false 輸入描述: 輸入4個int整數 輸出描述: 返

Java利用遞迴演算法實現24遊戲

24點遊戲 經典的紙牌益智遊戲,常見遊戲規則:         從撲克中每次取出4張牌。使用加減乘除,第一個能得出24者為贏。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求程式設計解決24點遊戲。         基本要求: 隨機生成4個代表撲克牌牌面

24點遊戲是經典的紙牌益智遊戲。 常見遊戲規則: 從撲克中每次取出4張牌。使用加減乘除,第一個能得出24贏。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求程式設計解決24點遊戲

24點遊戲是經典的紙牌益智遊戲。 常見遊戲規則: 從撲克中每次取出4張牌。使用加減乘除,第一個能得出24者為贏。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求程式設計解決24點遊戲。 基本要求: 隨機生成4個代表撲克牌牌面的數字字母,程式自動列

2018年演算法工程師秋招經驗貼(微軟、、網易遊戲、阿里offer)

目前不打算再投其他的公司了,所以來寫面試總結。一直被各種人追問面經,準確寫好一勞永逸哈哈哈。本人985碩士,性別女,可以參考下哈。有什麼問題,可以留言哈。 1.微軟 微軟是參加的進校面試,(師姐安利的,師姐是參加的夏令營)微軟的面試體驗是非常的棒的,微軟特別尊重

OJ:數字顛倒

ring pan mod ber ack art ava scan end 將數字轉成一個字符串即可了。 import java.util.Scanner; public class convertNumber { public static void main(St

OJ 名字美麗度

list tty res mod set 範圍 重載 物聯網 實例 這是一道坑爹的題目,為什麽這麽說,且看我慢慢分析…… 題目例如以下: 給出一個名字,該名字有26個字符串組成,定義這個字符串的“美麗度”是其全部字母“美麗度”的總和。 每一個字母都

24遊戲是經典的紙牌益智遊戲 java 程式 原始碼 測試結果

24點遊戲是經典的紙牌益智遊戲。 常見遊戲規則: 從撲克中每次取出4張牌。使用加減乘除,第一個能得出24者為贏。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求程式設計解決24點遊戲。 基本要求: 隨機生成4個代表撲克牌牌面的數字字母,程式自動列

從鍵盤輸入4個0-13之間的正整數實現24遊戲並寫入檔案中

程式碼如下: include<stdio.h> include <stdlib.h> include <time.h> FILE * fp; void main() { void play(); //宣告函式 fp=fopen

(Python)簡易24遊戲的實現步驟

題目說明: 24點遊戲是經典的紙牌益智遊戲。 常見遊戲規則:從撲克中每次取出4張牌。使用加減乘除,第一個能得出24者為贏。(其中,J代表11,Q代表12,K代表13,A代表1), 隨機生成4個代表撲克牌牌面的數字字母,程式自動列出所有可能算出24的表示式。 解題思想:

Python+pyqt5實現24遊戲

描述:一副牌中A、J、Q、K可以當成是1、11、12、13。任意抽取4張牌,用加、減、乘、除(可加括號)把牌面上的數算成24。每張牌對應的數字必須用一次且只能用一次。在規定時間內輸入算式,輸入正確加十分,輸入錯誤生命值減一,點選確定提交併進入下一題,點選清空可清

用Java實現24遊戲

24點遊戲 程式設計要求: 24點遊戲是經典的紙牌益智遊戲。 常見遊戲規則: 從撲克中每次取出4張牌。使用加減乘除,第一個能得出24者為贏。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求程式設計解決24點遊戲。 基本要求: 隨機生成4個代表撲克

尋找01矩陣中的最大子矩陣--OJ機試--java語言版

題目描述: 在一個M * N的矩陣中,所有的元素只有0和1,從這個矩陣中找出一個面積最大的全1子矩陣,所謂最大是指元素1的個數最多。 輸入: 輸入可能包含多個測試樣例。 對於每個測試案例,輸入的第一行

24遊戲設計

                                          &

oj素數伴侶

題目描述若兩個正整數的和為素數,則這兩個正整數稱之為“素數伴侶”,如2和5、6和13,它們能應用於通訊加密。現在密碼學會請你設計一個程式,從已有的N(N為偶數)個正整數中挑選出若干對組成“素數伴侶”,挑選方案多種多樣,例如有4個正整數:2,5,6,13,如果將5和6分為一組

oj【IP地址判斷有效性】

#include <iostream> #include <cstring> #include<string> using namespace std; bool isIPAddressValid(const char* pszIPAddr) { if(pszIPA

oj】超長正整數想加

問題描述:請設計一個演算法完成兩個超長正整數的加法。 介面說明  /*  請設計一個演算法完成兩個超長正整數的加法。  輸入引數:  String addend:加數  String augend:被

字串反轉——來自OJ平臺測試基礎篇

 /*  * 字串反轉  * 與字元逆序一樣,是同一個程式  * 描述:  寫出一個程式,接受一個字串,然後輸出該字串反轉後的字串。例如:  * 知識點:  陣列,指標   * 題目來源:  內部整理   * 練習階段:  初級   * 執行時間限制: 10Se