所以我刚刚在SPOJ上完成了“两个数字的总和”。我的代码通过了测试用例;然而,它对我来说似乎并不高雅。我的第一个方法是尝试实现一个模板来处理多种数据类型。我无法弄清楚如何成功地做到这一点。(C++)添加int和/或double并显示总和
我的问题:如何编写这个程序,以便它使用一个类以及一个函数模板(它处理int和double)。我觉得使用floor()有点怪,不合适。如果使用模板不是一个好的解决方案,那么更好的解决方案也很好。谢谢。
编辑: 以下解决方案的工作就好了。我对学习更多关于类的兴趣非常有兴趣(OOP对我来说是新的),我也想了解更多关于模板的知识。这是解决问题的链接SPOJ:http://www.spoj.com/problems/CHITEST1/
我的代码:
//For t test cases, output the sum of two numbers
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
double a, b, sum;
cin >> a >> b;
sum = a + b;
if (sum != floor(sum)) cout << sum << endl;
else cout << static_cast<int>(sum) << endl;
}
return 0;
}
你需要告诉我们你认为“优雅”。 – trojanfoe
为什么这种类型的杂耍?你可以添加一个链接到完整的问题陈述吗? – Quentin
如果您详细阐述了您尝试过的方法无效,那么实施模板化解决方案会很好。您的解决方案是否尝试将“a”和“b”解释为不同类型或相同? –