函数编码问题类似于普通编码问题,除了在编写解决方案时不需要从标准 I/O 读取输入和打印输出这一事实。
在函数编码问题中,只需要完成一个已经在代码编辑器中编写的函数。您需要处理作为此函数的参数提供的输入,而不是打印结果,您必须从函数返回它。
让我们以一个示例函数问题为例:数组的均衡索引。题型与一般的编程题几乎一样。在函数问题中,您可以注意到在输出格式之后提供的附加信息作为“任务”,它清楚地说明用户只需要完成一个函数并返回结果。
您还可以看到,在此问题的代码编辑器中,已经有一个名为findEquilibrium()的函数。
该函数接受一个数组A[]和一个表示数组 A[] 大小的整数n 。您可以在上图中看到此函数的主体是空的。您需要在此函数体内编写完整的代码并从中返回结果,而无需编写单独的main()函数。你必须假定已经有写的main()函数被调用此函数,并编写相应的程序。
以下是上述问题的完整工作解决方案:
/*Please note that it's Function problem i.e.
you need to write your solution in the form of Function(s) only.
Driver Code to call/invoke your function is mentioned above.*/
/* You are required to complete this method*/
int findEquilibrium(int A[], int n)
{
// Your code here
int i, y, f, j, x;
for (i = 1; i < n; i++) {
y = 0;
x = 0;
for (j = 0; j < i; j++) {
y = y + A[j];
}
for (j = i + 1; j < n; j++) {
x = x + A[j];
}
if (x == y) {
f = 1;
// returning answer
return (i);
break;
}
else {
f = 0;
}
}
if (f == 0) {
// returning answer
return (-1);
}
}
要记住的重要事项
- 应该假定main()函数是已经存在,其调用所述当前函数,不应单独写一个main()函数。
- 使用函数参数中提供的输入。
- 从函数返回结果而不是打印它。