void lambda3() {//输入 a b c三个数 求他们的阶乘(要求用lambda)
cout << "please input three num" << endl;
int mul = 1;
int vala, valb, valc,sum = 0;
cin >> vala >> valb >> valc;//输入三个数
auto fun2 = [&](int inp)mutable->int {
for (int temp = 1; temp <=inp; temp++) {//循环求阶乘
mul = temp * mul;
}
return mul;
};
sum = fun2(vala) + fun2(valb) + fun2(valc);
cout << "the sum is " <<sum << endl;
cout << "please input three num" << endl;
int mul = 1;
int vala, valb, valc,sum = 0;
cin >> vala >> valb >> valc;//输入三个数
auto fun2 = [&](int inp)mutable->int {
for (int temp = 1; temp <=inp; temp++) {//循环求阶乘
mul = temp * mul;
}
return mul;
};
sum = fun2(vala) + fun2(valb) + fun2(valc);
cout << "the sum is " <<sum << endl;
}//输入 2 3 4 答案为302 答案错误
改正:int mul=1;应该写在for循环之内 因为函数返回值的原因。