2014-03-27 110 views
0

遞歸關係T定義在n> = 0上,並以T(n)= T(n-1)+ 2 * n的形式給出,其基本情況T(0)= 1。評估遞歸關係

你會得到一個整數k,你必須編寫一個程序來找出T(k)。

該程序必須實現T()遞歸。

這裏是我的代碼:

include<stdio.h> 
long long T(int input) 
{ 
if(input == 0) 
return 1; 

return 2*input + T(input-1); 
} 
int main() 
{ 
/*write your code here*/ 
int k; 
    scanf("%d",&k); 
printf("%lli",T(k)); 
return 0;  
} 

這裏是我得到

Program:1:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token 
    Program:In function 'main': 
    Program:13:4: warning: implicit declaration of function 'scanf' [-Wimplicit-function-declaration] 
    Program:13:4: warning: incompatible implicit declaration of built-in function 'scanf' [enabled by   default] 
    Program:14:4: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration] 
    Program:14:4: warning: incompatible implicit declaration of built-in function 'printf' [enabled by default] 
    Program:14:4: warning: implicit declaration of function 'T' [-Wimplicit-function-declaration] 
    Program:14:4: warning: format '%lli' expects argument of type 'long long int', but argument 2 has type 'int' [-Wformat] 

我如何能實現以下預期結果的錯誤?

Sample Test Cases 

       Input Output 
Test Case 1  1   3 
Test Case 2  2   7 
Test Case 3  3   13 
+1

你應該寫#include

+0

非常感謝yar .. !! – user3454353

回答

0

您有一個錯字。更改

include<stdio.h> 

到:

#include <stdio.h> 
1

你缺少include之上背後的平方/哈希/尖銳#符號。

警告表明scanf未定義。在stdio.h中給出了您未包括的定義。

否則,你的遞歸函數是非常好的。

+0

非常感謝yar .. !! – user3454353