递归关系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
答案 0 :(得分:1)
您错过了#
背后的方形/哈希/尖锐include
符号。
警告表示未定义scanf
。在stdio.h
中给出了您未能包含的定义。
否则,你的递归函数非常好。
答案 1 :(得分:0)
你有一个错字。变化
include<stdio.h>
为:
#include <stdio.h>