div做网站,网站做成微信小程序,网站建设卖给别人可以吗,怎么做网页 在浏览器上先从最大的数开始, 深度优先遍历. 如果是 m 和 n 的公因子, 先遍历m的, 回溯返回的数值还是公因子, 再遍历n. 如果有某一或几条路径可以让 m 和 n 变成 1 ,说明 m 和 n 不冲突, m 胜利. 如果没有找到一条路径当 n 分解完成时, m 也分解完成, 则判定 m说谎(无论 n 是否说谎), n… 先从最大的数开始, 深度优先遍历. 如果是 m 和 n 的公因子, 先遍历m的, 回溯返回的数值还是公因子, 再遍历n. 如果有某一或几条路径可以让 m 和 n 变成 1 ,说明 m 和 n 不冲突, m 胜利. 如果没有找到一条路径当 n 分解完成时, m 也分解完成, 则判定 m说谎(无论 n 是否说谎), n 胜利. 1 #include iostream2 using namespace std;3 bool flagM, flagN;4 void dfs(int m, int n, int factor){5 //cout M N: m n endl;6 if (m 1 n 1){//两个都被完全因式分解7 //cout flagM flagN endl;8 flagM flagN true;9 return;
10 }
11 if (n 1)//小数被分解完大数还未被分解完
12 flagN true;
13 while (factor1){
14
15 if (m%factor 0) {
16 //cout FLAG: flagM flagN endl;
17 dfs(m / factor, n, factor - 1);
18 }
19
20 if (n%factor 0) {
21 cout flagM flagN endl;
22 dfs(m, n / factor, factor - 1);
23 }
24 factor--;
25 //cout FACTOR: factor endl;
26 }
27 }
28 int main(){
29 int m, n;
30 while (cinmn){
31 if (mn){
32 int t m;
33 m n;
34 n t;
35 }
36 flagM flagN false;
37 dfs(m, n, 100);
38 if (!flagM flagN)
39 cout n endl;
40 else
41 cout m endl;
42 }
43 return 0;
44 } 转载于:https://www.cnblogs.com/miyamochio/p/9675866.html