Создать циклическую блок-схему. : дано натуральное число n. определить, равна ли первая цифра числа последней цифре числа (строковые функции не использовать).
Наибольшее возможное значение выражения (F+O+X+E)*(F*R*D*D) = 236196. Прилагаю небольшой скрипт на Python. Простенькая задачка на корректную организацию перебора с использованием вложенных циклов:
max_num = 0 for f in xrange(10): for o in xrange(10): for x in xrange(10): for e in xrange(10): for r in xrange(10): for d in xrange(10): b = f*r*d*d if b == 0: continue num = (f + o + x + e) * b if num > max_num: max_num = num
print "Maximum value of (F+O+X+E)*(F*R*D*D) is: %i" % max_num
Решение можно получить гораздо проще, если догадаться, что наибольшее значение выражения достигается, когда сумма F+O+X+E и произведение F*R*D*D являются максимальными. Это одновременно происходит, когда все цифры равны 9: (9+9+9+9)*9*9*9*9 = 236196
#include <vector>
using namespace std;
int main() {
cout << "Введите массив (0, чтобы закончить):\n";
int k,
sb = 0, cb = 0,
sg = 0, cg = 0;
vector<int> v;
while (true) {
cin >> k;
if (k == 0)
break;
else
v.insert(v.end(), k);
}
for (int i = 0; i < v.size(); i++) {
if (v[i] < 0) {
sb += -1 * v[i];
cb++;
}
else {
sg += v[i];
cg++;
}
}
cout << "Средний рост юношей: "
<< (sb / cb) << '\n'
<< "Средний рост девушек: "
<< (sg / cg) << '\n';
return 0;
}
max_num = 0
for f in xrange(10):
for o in xrange(10):
for x in xrange(10):
for e in xrange(10):
for r in xrange(10):
for d in xrange(10):
b = f*r*d*d
if b == 0:
continue
num = (f + o + x + e) * b
if num > max_num:
max_num = num
print "Maximum value of (F+O+X+E)*(F*R*D*D) is: %i" % max_num
Решение можно получить гораздо проще, если догадаться, что наибольшее значение выражения достигается, когда сумма F+O+X+E и произведение F*R*D*D являются максимальными. Это одновременно происходит, когда все цифры равны 9: (9+9+9+9)*9*9*9*9 = 236196