c++ 函数指针代替 if 判断语句 就算 公差为1的等差数列和
起因
代码参考来源:mq
#include<iostream>
using namespace std;
int sum_zero(int n) {
return 0;
}
int sum_iota(int n) {
using funcptr = int(*)(int);
funcptr branch[] = {&sum_iota, sum_zero};
return n + branch[n - 1 == -1](n - 1);
}
int main() {
for(int i = 0; i <= 100; i++)
cout << sum_iota(i) << "\n";
return 0;
}