国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

遞歸之算24

2019-11-11 02:03:53
字體:
來源:轉載
供稿:網友

描述:

給出4個小于10的正整數,你可以使用加減乘除以及括號把這四個數字連接起來得到一個表達式,現在的問題是,是否存在一種方式使得到的結果剛好為24, 這里加減乘除以及括號的運算結果以及優先級和我們平時的定義一樣,(除法是實數除法) 例:5 5 5 1 5*(5-1/5)=24 1 1 4 2 無法得到24

代碼實現

#include<iostream>#include<cmath>#define EPS 1e-6using namespace std;bool IsZero(double n){ return fabs(n) <= EPS;}bool Count24(double a[],int n){ if( n == 1) { if(IsZero(a[0] - 24)) return true; else return false; } else { double b[5]; for(int i = 0;i < n-1; i++) { for(int j = i+1;j < n;j++) { int m = 0; for(int k = 0;k < n;k++) if(k != i && k != j) b[m++] = a[k]; b[m] = a[i] + a[j]; if(Count24(b,m+1)) return true; b[m] = a[i] - a[j]; if(Count24(b,m+1)) return true; b[m] = a[j] - a[i]; if(Count24(b,m+1)) return true; b[m] = a[i] * a[j]; if(Count24(b,m+1)) return true; if(!IsZero(a[j])) { b[m] = a[i] / a[j]; if(Count24(b,m+1)) return true; } if(!IsZero(a[i])) { b[m] = a[j] / a[i]; if(Count24(b,m+1)) return true; } } } } return false; } int main() { double a[5]; for(int i = 0;i < 4;i++) cin >> a[i]; while(a[0] != 0) { if(Count24(a,4)) cout << "YES" << endl; else cout << "NO" << endl; for(int i = 0;i < 4;i++) cin >> a[i]; } return 0; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沅江市| 衡东县| 昌宁县| 句容市| 瑞昌市| 新泰市| 安吉县| 英吉沙县| 甘泉县| 淮阳县| 兴隆县| 绵阳市| 宜兴市| 原阳县| 修文县| 鄱阳县| 普兰县| 呼和浩特市| 和田县| 托里县| 新乐市| 阳城县| 赣榆县| 铁岭县| 平谷区| 合水县| 纳雍县| 临澧县| 樟树市| 南京市| 栾川县| 秦皇岛市| 斗六市| 华安县| 措勤县| 大荔县| 连平县| 永顺县| 长沙市| 云阳县| 公安县|