各位参加CSP-J的朋友们都看到试卷了吧!(明知故问)
现在,我要告诉你一个特朗离谱的事。
看到阅读程序了吧,阅读程序的第三题长这样:
#include<iostream>
#include<cmath>
using namespace std;
int customFunction(int a,int b){
if(b == 0){
return a;
}
return a + customFunction(a,b - 1);
}
int main(){
int x,y;
cin >> x >> y;
int result = customFunction(x,y);
cout << pow(result, 2) << endl;
return 0;
}
题目是这样的:
判断题:
27.当输入为“2 3”时,customFunction(2,3)的返回值为“64”。
这题选错误没毛病吧!
然后我看到了下面两题的题目的题解(民间):
28.当 b 为负数时,customFunction(a,b)会陷入无限递归。()
A.正确
B.错误
29.当b的值越大,程序的运行时间越长。()
A.正确
B.错误
然后我这两题就都写了A,似乎也没多大毛病。然后……
int的数据范围是-2147483648 到 +2147483647 ,也就是说b一直减,减到 -2147483648 的时候再减一,就会变成 +2147483647 。
这么说的话,当 b 为负数时,customFunction(a,b)会陷入无限递归。是错的,只会是运行时间慢了点,当b的值越大,程序的运行时间越长。也是错的, 是当b是负数时,越靠近0越大 才是对的
所以……
CCF你玩我心态呢是吧,我的三分啊呜呜呜