Почему мое решение не работает?
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=36
Я написал это в предположении, что источником данных был stdin.
Я полностью ожидаю, что онопроблема с моим кодом, но я не понимаю, почему в результате получаю «Неправильный ответ».(Выбор компилятора был ANSI C)
EDIT: изменен так, чтобы позволить параметру 1> параметр 2 (но теперь я получаю «ошибку представления», что бы это ни было)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[])
{
unsigned int p1;
unsigned int start;
unsigned int end;
unsigned int current;
unsigned int n;
unsigned int p2;
unsigned int max_cycle = 0;
unsigned int current_cycle;
while(scanf("%u %u", &p1, &p2) != EOF){
max_cycle = 0;
start = (p1 < p2 ? p1 : p2);
end = (p1 < p2 ? p2 : p1);
current = start;
while(current <= end){
n = current;
current_cycle = 0;
while(n > 1) {
if(n & 1)
n = 3*n+1;
else
n = n/2;
current_cycle++;
}
current_cycle++;
if (max_cycle < current_cycle) max_cycle = current_cycle;
current++;
}
fprintf(stdout, "%u %u %u\n", p1, p2, max_cycle );
}
return 0;
}