#include<iostream>
#include<vector>
#include<map>
using namespace std;
vector<string> str{ "暗斑点","长脖子","长腿","奶","蹄" };
map<int, string> rule
{{1,"哺乳动物"}, //r1{2,"哺乳动物"}, //r2{3,"鸟"}, //r3{4,"鸟"}, //r4{5,"肉食动物"}, //r5{6,"肉食动物"}, //r6{7,"有蹄类动物"}, //r7{8,"有蹄类动物"}, //r8{9,"金钱豹"}, //r9{10,"虎"}, //r10{11,"长颈鹿"}, //r11{12,"斑马"}, //r12{13,"鸵鸟"}, //r13{14,"企鹅"}, //r14{15,"信天翁"} //r15
};
bool noHave(string s)
{for (auto x : str)if (x == s){return 0;}return 1;
}
bool Have(string s)
{for (auto x : str)if (x == s){return 1;}return 0;
}
int main()
{for (auto r : rule){if (r.first == 1){if (Have("毛发") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 2){if (Have("奶") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 3){if (Have("毛发") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 4){if (Have("会飞") && Have("会下蛋") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 5){if (Have("吃肉") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 6){if (Have("犬齿") && Have("爪") && Have("眼盯前方") && (r.first == 1)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 7){if (Have("哺乳动物") && Have("蹄") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 8){if (Have("哺乳动物") && Have("反刍动物") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 9){if (Have("哺乳动物") && Have("食肉动物") && Have("黄褐色") && Have("暗斑点") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 10){if (Have("哺乳动物") && Have("食肉动物") && Have("黄褐色") && Have("黑色条纹") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 11){if (Have("有蹄类动物") && Have("长脖子") && Have("长腿") && Have("暗斑点") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 12){if (Have("有蹄类动物") && Have("黑色条纹") && Have("") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 13){if (Have("鸟") && Have("长脖子") && Have("长腿") && Have("不会飞") && Have("黑白二色") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 14){if (Have("鸟") && Have("会游泳") && Have("不会飞") && Have("黑白二色") && noHave(r.second)){str.push_back(r.second);cout << "规则r" << r.first << " 加入: " << r.second << endl;}}if (r.first == 15){if (Have("鸟") && Have("善飞") && noHave(r.second))str.push_back(r.second);}}cout << "综合数据库内容: ";for (auto x : str) cout << x << " ";cout << endl;return 0;
}
Run
[执行完成,耗时:0 ms]