これで、SPOJで「2つの数値の合計」を完成させました。私のコードはテストケースを通過しました。しかし、それは私にとって非常にエレガントではないようです。私の最初のアプローチは、複数のデータ型を扱うテンプレートを実装しようとすることでした。私はこれをうまくやり遂げる方法を理解できませんでした。(C++)intおよび/またはdoubleを加算して合計を表示
私の質問:このプログラムは、クラスと関数テンプレート(intとdoubleを処理する)を使用するように、どのように記述できますか?私はfloor()を使うのがちょっと奇妙で不適切だと感じています。テンプレートを使用するのが良い解決策でない場合は、より良い方が良いと思うでしょう。ありがとう。
EDIT: 以下のソリューションがうまく動作します。私はクラスについてもっと学びたいと思っています(OOPは私にとっては初めてです)。また、テンプレートについてもっと学びたいと思います。 http://www.spoj.com/problems/CHITEST1/
マイコード:ここでSPOJ上の問題へのリンクですたぶん、あなたはこの探している
//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'が異なるタイプまたは同じであると説明しようとしましたか? –