Здравствуйте, Vadim B, Вы писали:
VB>Здравствуйте, Staon, Вы писали:
S>>У меня такое дело – мы с братом не можем выяснить, чей код эффективней.
S>>Вариант №1:
S>>S>>for(int j=i-1;j>=0;j--)
S>>{
S>> b+=m[j]*pow(10, j);
S>>}
S>>
S>>Вариант №2:
S>>S>> c1=(x/(int)pow(10,rank-2))%10;
S>> c2=(x%(int)pow(10,2))/10;
S>> x-=c1*pow(10,rank-2);
S>> x+=c2*pow(10,rank-2);
S>>
VB>IMHO код, который в такой задаче использует (int)pow(...), эффективным считаться никак не может. Кстати, он не может считаться и правильным тоже, потому что никто не гарантирует, что (int)pow(10,8)==100000000, оно вполне может оказаться на единицу меньше.
Спасибо за замечание, я сам это не учёл, хотя где-то среди себя знал про такую ошибку и поэтому придлогаю заменить функцию Pow на MyPow, которая будет высчитывать результат в простом цикле и возвращать int.