评估递归关系

时间:2014-03-27 05:50:47

标签: c

递归关系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

2 个答案:

答案 0 :(得分:1)

您错过了#背后的方形/哈希/尖锐include符号。

警告表示未定义scanf。在stdio.h中给出了您未能包含的定义。

否则,你的递归函数非常好。

答案 1 :(得分:0)

你有一个错字。变化

include<stdio.h>

为:

#include <stdio.h>