赞
踩
C++写的无限循环代码
- const int l = 3;
- int aa[] = { 1, 2, 3, 5, 7, 9, 11, 13, 15 }, bb[l] = { 0 }, g = l, d = sizeof(aa) / sizeof(aa[0]);
-
- while (bb[0] < d)
- {
- while (--g)//无限嵌套逐级运算
- if (g > 0 && bb[g] >= d)
- {
- bb[g] = 0;
- ++bb[g - 1];
- std::cout << endl;//附加的显示部分
- }
- if (bb[l - 1] < d)//显示部分没写循环
- {
- std::cout << aa[bb[0]] << "+" << aa[bb[1]] << "+" << aa[bb[2]] << "=" << aa[bb[0]] + aa[bb[1]] + aa[bb[2]] << "; ";
- if (aa[bb[0]] + aa[bb[1]] + aa[bb[2]] == 30)break;
- }
- ++bb[l - 1];
- g = l;
- }
原来的嵌套循环写法
-
-
- int aa[] = { 1, 2, 3, 5, 7, 9, 11, 13, 15 }, a = 0, b = 0, c = 0, d = sizeof(aa) / sizeof(aa[0]);
-
- while (a < d)
- {
- std::cout << aa[a] << "+" << aa[b] << "+" << aa[c] << "=" << aa[a] + aa[b] + aa[c] << "; ";
- if (aa[a] + aa[b] + aa[c] == 30)
- {
- std::cout << aa[a] << aa[b] << aa[c] << "^_^";
- break;
- }
- if (++c >= d)
- {
- ++b;
- c = 0;
- std::cout << endl;
- }
- if (b >= d)
- {
- ++a;
- b = 0;
- }
- }
检查唯一性。
- /**/const int l = 3;
- int aa[] = { 1, 3, 5, 7, 9, 11, 13, 15 }, bb[l] = { 0 }, g = l, j = 0, t = 0, d = sizeof(aa) / sizeof(aa[0]);
- while (bb[0] < d)
- {
- while (--g)//无限嵌套逐级运算
- {
- if (g > 0 && bb[g] >= d)
- {
- bb[g] = 0;
- ++bb[g - 1];
- g = l;//检查唯一序
- std::cout << endl;//附加的显示部分
- }
- j = 0;//检查唯一序
- while (!t && j < g) if (bb[j] == bb[g]) t = 1; else ++j;
- }
- if (!t && bb[l - 1] < d && bb[0] < d)//计算与显示部分没写循环
- {
- std::cout << aa[bb[0]] << "+" << aa[bb[1]] << "+" << aa[bb[2]] << "=" << aa[bb[0]] + aa[bb[1]] + aa[bb[2]] << "; ";
- if (aa[bb[0]] + aa[bb[1]] + aa[bb[2]] == 30)break;
- }
- ++bb[l - 1];
- j = t = 0;
- g = l;
- }
全面循环代码
- /**/const int 数量 = 8;
- int 数据[] = { 1, 3, 5, 7, 9, 11, 13, 15 }, 嵌套[数量] = { 0 }, 逐级 = 数量, 检查 = 0, 状态 = 0, 长度 = sizeof(数据) / sizeof(数据[0]);
- while (嵌套[0] < 长度)
- {
- while (--逐级)//无限嵌套逐级运算
- {
- if (逐级 > 0 && 嵌套[逐级] >= 长度)
- {
- 嵌套[逐级] = 0;
- ++嵌套[逐级 - 1];
- 逐级 = 数量;//检查唯一序
- //std::cout << endl;附加的显示部分
- }
- 检查 = 0;//检查唯一序
- while (!状态 && 检查 < 逐级) if (嵌套[检查] == 嵌套[逐级]) 状态 = 1; else ++检查;
- }
- if (!状态 && 嵌套[数量 - 1] < 长度 && 嵌套[0] < 长度)//计算与显示部分没写循环
- {
- 检查 = 0;//重复利用的变量
- while (逐级 < 数量)
- {
- 检查 += 数据[嵌套[逐级]];
- std::cout << (数据[嵌套[逐级]] > 9 ? "" : "0") << 数据[嵌套[逐级]] << (逐级 >= 数量 - 1 ? " = " : "+");
- ++逐级;
- }
- std::cout << (检查 > 9 ? "" : "0") << 检查 << "; ";
- //if (检查 == 30)break;
- }
- ++嵌套[数量 - 1];
- 检查 = 状态 = 0;
- 逐级 = 数量;
- }
运行实例
另外答复了提问https://bbs.csdn.net/topics/392520005
- int 数据[] = { 1, 2, 3, 5, 7, 9, 11, 13, 15 }, 长度 = sizeof(数据) / sizeof(数据[0]),
- 嵌套[sizeof(数据) / sizeof(数据[0])] = { 0 }, 逐级 = 长度, 检查 = 0, 状态 = 0,
- 最大值 = 0, 取值 = 0;
- while (嵌套[0] < 长度)
- {
- while (--逐级)//无限嵌套逐级运算
- {
- if (逐级 > 0 && 嵌套[逐级] >= 长度)
- {
- 嵌套[逐级] = 0;
- ++嵌套[逐级 - 1];
- 逐级 = 长度;
- //std::cout << endl;附加的显示部分
- }
- 检查 = 0;//检查唯一序
- while (!状态 && 检查 < 逐级) if (嵌套[检查] == 嵌套[逐级]) 状态 = 1; else ++检查;
- }
- if (!状态 && 嵌套[长度 - 1] < 长度 && 嵌套[0] < 长度)//计算与显示部分
- {
- 检查 = 0;//重复利用的变量
- while (逐级 < 长度)
- {
- if (检查 == 0)检查 += 数据[嵌套[逐级]];
- else
- {
- 取值 = 数据[嵌套[逐级]];
- while (取值) { 检查 *= 10; 取值 /= 10; }
- 检查 += 数据[嵌套[逐级]];
- }
- if (最大值 < 检查)最大值 = 检查;
- //std::cout << (数据[嵌套[逐级]] > 9 ? "" : "0") << 数据[嵌套[逐级]] << (逐级 >= 长度 - 1 ? " = " : "+");
- ++逐级;
- }
- //std::cout << (检查 > 9 ? "" : "0") << 检查 << "; ";
- }
- ++嵌套[长度 - 1];
- 检查 = 状态 = 0;
- 逐级 = 长度;
- }std::cout << 最大值;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。