最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++計算24點的簡單程序

 更新時間:2020年03月06日 13:30:59   作者:icedump  
這篇文章主要為大家詳細(xì)介紹了C++計算24點的簡單程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C++計算24點的的具體代碼,供大家參考,具體內(nèi)容如下

近來家庭作業(yè)里有24點的題目,為了找出所有可能的組合,就寫了個簡單的程序:

1. 運行程序

2. 輸入4個整數(shù),比如:3  3  7  8

3. 顯示所有可能的組合

代碼:

#include "assert.h"
#include <iostream>
 
double operate(double num1, double num2, int op)
{
 assert(op >= 0 && op < 4);
 
 if(op == 0){
 return num1 + num2;
 }
 else if(op == 1){
 return num1 - num2;
 }
 else if(op == 2){
 return num1 * num2;
 }
 else{
 return num1/num2;
 }
}
 
int calculate(int num1, int num2, int num3, int num4)
{
 char operators[] = "+-*/";
 
 for(int i = 0; i < 4; i ++)
 {
 for(int j = 0; j < 4; j ++)
 {
  for (int k = 0; k < 4; k ++)
  {
  double ret = operate(num1, num2, i);
  ret = operate(ret, num3, j);
  ret = operate(ret, num4, k);
  if(abs(ret - 24) < 0.001){
   printf("((%d %c %d) %c %d) %c %d = %f\n", num1, operators[i], 
                    num2, operators[j], 
      num3, operators[k], 
      num4, ret);
  }
 
  ret = operate(num1, num2, i);
  double ret2 = operate(num3, num4, k);
  ret = operate(ret, ret2, j);
  if(abs(ret - 24) < 0.001){
   printf("(%d %c %d) %c (%d %c %d) = %f\n", num1, operators[i], 
                    num2, operators[j], 
      num3, operators[k], 
      num4, ret);
  }
 
  ret = operate(num2, num3, j);
  ret = operate(num1, ret, i);
  ret = operate(ret, num4, k);
  if(abs(ret - 24) < 0.001){
   printf("(%d %c (%d %c %d)) %c %d = %f\n", num1, operators[i], 
                    num2, operators[j], 
      num3, operators[k], 
      num4, ret);
  }
 
  ret = operate(num2, num3, j);
  ret = operate(ret, num4, k);
  ret = operate(num1, ret, i);
  if(abs(ret - 24) < 0.001){
   printf("%d %c ((%d %c %d) %c %d) = %f\n", num1, operators[i],
                    num2, operators[j], 
      num3, operators[k], 
      num4, ret);
  }
 
  ret = operate(num3, num4, k);
  ret = operate(num2, ret, j);
  ret = operate(num1, ret, i);
  if(abs(ret - 24) < 0.001){
   printf("%d %c (%d %c (%d %c %d)) = %f\n", num1, operators[i], 
                    num2, operators[j], 
      num3, operators[k], 
      num4, ret);
  }
  }
 }
 }
 return 0;
}
 
int main(int argc, char* argv[])
{
 
 int nums[4] = {0, 0, 0, 0};
 std::cin >> nums[0] >> nums[1] >> nums[2] >> nums[3];
 
 for (int i = 0; i < sizeof(nums)/sizeof(nums[0]); i ++)
 {
 int num1 = nums[i];
 int ret = num1;
  
 for(int j = 0; j < sizeof(nums)/sizeof(nums[0]); j ++)
 {
  if(j == i)
  continue;
 
  int num2 = nums[j];
  
  for(int k = 0; k < sizeof(nums)/sizeof(nums[0]); k++)
  {
  if( k == i || k == j)
   continue;
 
  int num3 = nums[k];
 
  for(int l = 0; l < sizeof(nums)/sizeof(nums[0]); l ++)
  {
   if(l == i || l == j || l == k)
   continue;
 
   int num4 = nums[l];
   calculate(num1, num2, num3, num4);
  }
  }
 }
 }
 
 return 0;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解C語言編程中的函數(shù)指針以及函數(shù)回調(diào)

    詳解C語言編程中的函數(shù)指針以及函數(shù)回調(diào)

    這篇文章主要介紹了C語言編程中的函數(shù)指針以及函數(shù)回調(diào),函數(shù)回調(diào)實際上就是讓函數(shù)指針作函數(shù)參數(shù)、調(diào)用時傳入函數(shù)地址,需要的朋友可以參考下
    2016-04-04
  • C++實現(xiàn)快捷店會員管理系統(tǒng)

    C++實現(xiàn)快捷店會員管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)快捷店會員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言輸入一個數(shù)判斷是否為素數(shù)的多種方法

    C語言輸入一個數(shù)判斷是否為素數(shù)的多種方法

    素數(shù)是只能被1和它自己本身整除,不能被其他自然數(shù)整除的大于1的正整數(shù),下面這篇文章主要給大家介紹了關(guān)于C語言輸入一個數(shù)判斷是否為素數(shù)的多種方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • C++結(jié)構(gòu)體初始化的10種寫法總結(jié)

    C++結(jié)構(gòu)體初始化的10種寫法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了10種C++中結(jié)構(gòu)體初始化的寫法,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • C++?this原理與可變參數(shù)及友元函數(shù)友元類分步詳解用法

    C++?this原理與可變參數(shù)及友元函數(shù)友元類分步詳解用法

    可變參數(shù)模板(variadic?templates)是C++11新增的強(qiáng)大的特性之一,它對模板參數(shù)進(jìn)行了高度泛化,能表示0到任意個數(shù)、任意類型的參數(shù),這篇文章主要介紹了C++?this原理與可變參數(shù)及友元函數(shù)友元類
    2022-11-11
  • c++ 如何在libuv中實現(xiàn)tcp服務(wù)器

    c++ 如何在libuv中實現(xiàn)tcp服務(wù)器

    這篇文章主要介紹了c++ 如何在libuv中實現(xiàn)tcp服務(wù)器,幫助大家更好的理解和使用libuv,感興趣的朋友可以了解下
    2021-02-02
  • Objective-C中使用STL標(biāo)準(zhǔn)庫Queue隊列的方法詳解

    Objective-C中使用STL標(biāo)準(zhǔn)庫Queue隊列的方法詳解

    這篇文章主要介紹了Objective-C中使用STL標(biāo)準(zhǔn)庫Queue隊列的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • C++ OpenCV生成蒙太奇圖像的示例詳解

    C++ OpenCV生成蒙太奇圖像的示例詳解

    圖片的蒙太奇效果,一般稱為馬賽克圖。由很多小圖拼接成一個大圖。這篇文章主要為大家介紹如何利用C++ OpenCV實現(xiàn)生成蒙太奇圖像,感興趣的可以了解一下
    2022-01-01
  • C語言數(shù)組全面總結(jié)梳理

    C語言數(shù)組全面總結(jié)梳理

    在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個字符串,使字符串處理更加方便、靈活
    2022-02-02
  • 解析ActiveMQ的使用說明總結(jié)

    解析ActiveMQ的使用說明總結(jié)

    本篇文章是對ActiveMQ的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論

宜阳县| 运城市| 古蔺县| 云和县| 五华县| 宜都市| 临沭县| 南丰县| 全州县| 阜康市| 沛县| 辛集市| 扎兰屯市| 金寨县| 观塘区| 抚顺县| 汨罗市| 安阳市| 平原县| 剑川县| 阳江市| 富顺县| 平昌县| 温泉县| 湖北省| 家居| 班戈县| 孝昌县| 望都县| 会泽县| 明光市| 峨边| 阳江市| 泽普县| 兴宁市| 句容市| 连山| 安庆市| 禹州市| 错那县| 绿春县|