
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
もう少しmpl風に
#include <iostream>
template<int i,typename is_true,typename is_false>
struct mpl_is_zero { typedef typename is_false type; };
template<typename is_true,typename is_false>
struct mpl_is_zero<0,is_true,is_false> { typedef typename is_true type; };
template<typename T>
struct NoAdd { static T value(T val) { return val; } };
template<typename T,int i>
struct AddVal {
static T value(T val) {
return mpl_is_zero< i, NoAdd<T>, AddVal<T,i-1> >::type::value(val) + T(0.01);
}
};
int main(void)
{
float f(0);
std::cout << AddVal<float,10000>::value(f) << std::endl;
double d(0);
std::cout << AddVal<double,10000>::value(d) << std::endl;
return 0;
}
No.5
- 回答日時:
一応 C++, のつもり>#4. 元の質問を読めばわかるけど言語が指定されてないので, C だろうと C++ だろうとカテゴリ的には OK. 意味としては, AddFraction<T, n> で「T型の変数に対して 0.01 を n 回加算する」ということ.
あ~, AddFraction のコンストラクタに「加算する値」も追加すべきだったかなぁ. つまり
template <typename T, int n>
class AddFraction {
AddFraction<T, n-1> inner;
public:
AddFraction(T& var, const T step) : inner(var, step) { }
};
みたいな感じ. これなら 0.01 に限定しなくていいので汎用性があるね. もしくは
template <typename T, int n> inline addFraction(T &var) { var = 0; return AddFraction<T, n>(var); }
って関数を作っておくと
auto a = addFraction<10000>(f);
みたいに書けてきれいかも.
ついでにいうと「ここ」が「ネタスレ」なるものである, ということではないです. ただ, このように「どこをどう見ても自分で努力しているような気配がない」質問に対しては, 無視されたり「読みにくいプログラムコンテスト」の題材にされたりすることがあります.
No.3
- 回答日時:
#include <iostream>
template <typename T, int n>
class AddFraction {
AddFraction<T, n-1> inner;
public:
AddFraction(T &var) : inner(var) { }
T &operator()() const { inner(); var += 0.01; return var; }
};
template <typename T>
class AddFraction<T, 0> {
T &v;
public:
AddFraction(T &var) : v(var) { }
T &operator()() const { return v; }
};
int main()
{
float f = 0;
AddFraction<float, 10000> a(f);
std::cout << a() << std::endl;
double d = 0;
AddFraction<double, 10000> b(d);
std::cout << b() << std::endl;
}
でどうだ.
No.2
- 回答日時:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float f = 0.0;
double d = 0.0;
int i;
for(i = 0;i < 400;i++) {
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
f += 0.01; d += 0.01;
}
printf("f = %f, d= %f\n", f, d);
return 0;
}
No.1
- 回答日時:
また、"勝ち組"の方ですか?
しつこいですね~
以前の批判が全然お分かりになっていないようです。
”勝ち組"の方なので下々の意見なんて耳を貸すのも
馬鹿らしいということでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- 数学 単振り子とルンゲ・タック法 1 2022/07/15 00:05
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- Ruby VBA 2 2023/01/14 14:14
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- JavaScript 変数宣言と初期値代入の場所について 3 2022/10/31 19:09
- XML MSFormsとは何ですか? 2 2022/05/02 09:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
gccでコンパイル時のエラー
-
wstringの内容を表示させたい
-
IEEEの浮動小数点数
-
OpenCVでRAW画像(カラー)を開...
-
空ENTERの判別
-
findnext();について
-
constexprについて
-
このプログラミング誰か教えて...
-
iostream インクルード時に発生...
-
std::map の const 修飾について
-
STL string::findで見つからな...
-
JPEGやPNGが読めるLoadImage関数
-
2次元vectorのerase?
-
Aの値からBの値を除するとは??
-
Enterキーを押されたら次の処理...
-
C言語での引数の省略方法
-
「Aに対するBの割合」と「Aに対...
-
信頼区間の1.96や1.65ってどこ...
-
【C言語】全角文字の配列を、全...
-
c言語でAからZまでを表示する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
なぜ、C++の標準ヘッダをインク...
-
switch文のエラーについて
-
VC++で文字列から任意の文字を...
-
構文エラーが出ているのですが...
-
gccでコンパイル時のエラー
-
空ENTERの判別
-
vectorのイテレータを大小比較...
-
JPEGやPNGが読めるLoadImage関数
-
C++で、テキストファイルを一行...
-
std::wstringのメモリリークに...
-
enumの値から定義名を文字列化...
-
CStringとString
-
#define中の#のエスケープ
-
std::map の const 修飾について
-
#include "fstream.h"
-
_tcscat がうまくいきません(V...
-
C言語のポインターで詰まっている
-
構造体配列のvectorへの変換と...
-
C++での <iostream.h>と<iostre...
-
ヘッダーファイルがインクルー...
おすすめ情報