4^2014=2^(2014*2)=2^4028 ⇒ одна единица и 4027 нулей (двоичное). 2^2012 ⇒ одна единица и 2011 нулей (двоичное) 2^2012-7 ⇒ три нуля и 2009 единиц (двоичное) Итого 2009+1=2010 единиц (двоичное)
Вот ответ в десятичном, но это явно не то)) 3538527169212018155864413042896455744619637954208101343038094004840193312391279364094208553550676744453835544234886175599196777039502339010066542218804586467942661260850541177413531320503113294638603208017689051879588274055613464537369120475122434457158996067521442816506937082020920190596714858235673738940672539992526593760325311873874825837491947567978843832013764071094032260801494858638206268737961359863686550017116049700726312296781522696418152267253913331361527800807104406287669897987282821589206706267741621987749925504102439323168938903091761894995656708811792345191630295102464093447034507820726162961294330878185795030810840077701276084597933534964003255165481210166209509959645325056464442117164565502150872823948937948242360969814730087178015283310743198236241552434807101096645725760581473908478230920688710778270011585165174619840115484699347095200402196917869081338931191186519668192091590831331186254248296603329535478176368437747217942848000268516555141432357830005561033582291984433498963647083121670374437329771055392068781474863637065744597836801504320388006557200849307899363092179354262422120286596777615043112692185725123749506546488835392783815348255632856044943415851880313353563799545
def dijkstra(graph, node): """ Simulate the dijkstra algorithm in a graph """ distance_to = {} distance_to[node] = 0 distance_path = {} while (distance_to): # in case we have a disjoint graph op_node = min_distance(distance_to) distance_path[op_node] = distance_to[op_node] del distance_to[op_node] for x, x_len in graph[op_node].items(): if x not in distance_path: if x not in distance_to: distance_to[x] = distance_path[op_node] + x_len elif distance_to[x] > distance_path[op_node] + x_len: distance_to[x] = distance_path[op_node] + x_len return distance_path
Одно из решений, возможно, не самое эффективное #include <iostream> #include <iomanip> int main() { using namespace std;
//исходная последовательность const int N = 8; double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };
//вывод на экран исходной последовательности for (int i = 0; i < N; ++i) cout << Arr[i] << " "; cout << endl;
//подсчитаем количества отрицательных и неотрицательных элементов int kpos = 0; int kneg = 0; for (int i = 0; i < N; ++i) if (Arr[i] < 0) ++kneg; else ++kpos;
//создадим массивы отрицательных и неотрицательных элементов double * ArrNeg = new double[kneg]; double * ArrPos = new double[kpos];
int kn = 0, kp = 0; for (int i = 0; i < N; i++) if (Arr[i] < 0) ArrNeg[kn++] = Arr[i]; else ArrPos[kp++] = Arr[i];
cout << "Enter a, b, c or d: "; char ch; cin >> ch;
if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd') { switch (ch) { //пункт а) case 'a': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[i]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[i]; break;
//пункт б) case 'b': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[--kn]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[i]; break;
//пункт в) case 'c': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[i]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[--kp]; break;
//пункт г) case 'd': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[--kn]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[--kp]; break; } } else cout << "You entered wrong symbol\n";
for (int i = 0; i < N; ++i) cout << Arr[i] << " "; cout << endl; delete[] ArrNeg; delete[] ArrPos; return 0; }
2^2012 ⇒ одна единица и 2011 нулей (двоичное)
2^2012-7 ⇒ три нуля и 2009 единиц (двоичное)
Итого 2009+1=2010 единиц (двоичное)
Вот ответ в десятичном, но это явно не то))
3538527169212018155864413042896455744619637954208101343038094004840193312391279364094208553550676744453835544234886175599196777039502339010066542218804586467942661260850541177413531320503113294638603208017689051879588274055613464537369120475122434457158996067521442816506937082020920190596714858235673738940672539992526593760325311873874825837491947567978843832013764071094032260801494858638206268737961359863686550017116049700726312296781522696418152267253913331361527800807104406287669897987282821589206706267741621987749925504102439323168938903091761894995656708811792345191630295102464093447034507820726162961294330878185795030810840077701276084597933534964003255165481210166209509959645325056464442117164565502150872823948937948242360969814730087178015283310743198236241552434807101096645725760581473908478230920688710778270011585165174619840115484699347095200402196917869081338931191186519668192091590831331186254248296603329535478176368437747217942848000268516555141432357830005561033582291984433498963647083121670374437329771055392068781474863637065744597836801504320388006557200849307899363092179354262422120286596777615043112692185725123749506546488835392783815348255632856044943415851880313353563799545