#26515: 遞迴明明就可以,不要被他們騙了


kevin0428.su@gmail.com (06蘇聖凱)


奇怪了我用遞迴一次就AC,只是時間蠻長的就是了(0.5s)

f的函數就照抄

int f(int n)

{

 

    if(n==1)return 1;

 

    return (n+f(n-1));

 

}

g也是照抄,只是質比較大,要用long long

long long g(int n)

{

 

    if(n==1)return 1;

 

    return (f(n)+g(n-1));

 

 

}

#29746: Re:遞迴明明就可以,不要被他們騙了


narutoooo1771@gmail.com (トンカツ)


#include <iostream>
using namespace std;
 
int f(long long int n);
 
int g(long long int n);
 
int main() 
{
    long long int n;
    while (cin >> n)
    {
        cout << f(n) << " " << g(n) << '\n';
    }
 
    return 0;
}
 
// input 3 -> 3 + f(2) -> 2 + f(1) -> 1 ans: 6
// input 2 -> 2 + f(1) -> 1 ans: 3
// input 1 -> 1 ans: 1
int f(long long int n)
{
    if (n == 1)
    {
        return 1;
    }
    else
    {
        return n + f(n - 1);
    }
}
 
// 3 -> 6 + g(2) -> 3 + g(1) -> 1 ans: 10
int g(long long int n)
{
    if (n == 1)
    {
        return 1;
    }
    else
    {
        return f(n) + g(n - 1);
    }
}

想請問為什麼會 NA
#29747: Re:遞迴明明就可以,不要被他們騙了


linlincaleb@gmail.com (臨末之頌)


#include 
using namespace std;
 
int f(long long int n);
 
int g(long long int n);
 
int main() 
{
    long long int n;
    while (cin >> n)
    {
        cout << f(n) << " " << g(n) << '\n';
    }
 
    return 0;
}
 
// input 3 -> 3 + f(2) -> 2 + f(1) -> 1 ans: 6
// input 2 -> 2 + f(1) -> 1 ans: 3
// input 1 -> 1 ans: 1
int f(long long int n)
{
    if (n == 1)
    {
        return 1;
    }
    else
    {
        return n + f(n - 1);
    }
}
 
// 3 -> 6 + g(2) -> 3 + g(1) -> 1 ans: 10
int g(long long int n)
{
    if (n == 1)
    {
        return 1;
    }
    else
    {
        return f(n) + g(n - 1);
    }
}

想請問為什麼會 NA

"long long" g(int n)

#30631: Re: 遞迴明明就可以,不要被他們騙了


Jerry931203 (阿怎麼又NA)


謝謝大哥讓我沒被騙