UVa_100 3n + 1,我得错了答案

时间:2014-12-16 13:34:50

标签: c++

这是代码:

#include <iostream>
#include <cmath>
using namespace std;

long long int problem(long long int);
int counter = 0;

int main()
{
    int i, j;
    while(cin >> i >> j){

        int max = 0;
        if(i > j){

            int temp = i;
            i = j;
            j = temp;
        }
        for(long long int count = i; count <= j; count++){

            counter = 1;
            problem(count);
            if(counter > max) max = counter;
        }

        cout << i << " " << j << " " << max << endl;
    }
    return 0;
}
long long int problem(long long int n)
{
    if(n == 1){

    }
    else
    {
        if(n % 2 == 1){
            counter++;
            return problem(3 * n+1);
        }else{
            counter++;
            return problem(n/2);
        }
    }

}

我尝试了UVa提供的每个输入并获得正确的输出, 然而,UVa仍然让我回答错误答案&#34;。

非常感谢!

1 个答案:

答案 0 :(得分:1)

您的计划没问题。 只需打印输入中出现的数字即可。那就是:

输入:10 5

正确输出:10 5 20

您的输出:5 10 20