C/C++の宿題片付けます 140代目
■ このスレッドは過去ログ倉庫に格納されています
0565デフォルトの名無しさん
2010/10/04(月) 18:33:39VS2010な
#include <stdio.h>
#include <map>
#include <tuple>
int tar(int x, int y, int z);
std::map<std::tr1::tuple<int, int, int>, int> mtiii;
int main(void)
{
int x, y, z;
printf("x = ");
scanf("%d", &x);
printf("y = ");
scanf("%d", &y);
printf("z = ");
scanf("%d", &z);
printf("TAR(%d,%d,%d) = %d\n", x, y, z, tar(x, y, z));
std::getchar();
}
int tar(int x, int y, int z)
{
if (x <= y)
return y;
else
if (mtiii[std::tr1::tuple<int, int, int>(x, y, z)])
return mtiii[std::tr1::tuple<int, int, int>(x, y, z)];
else {
mtiii[std::tr1::tuple<int, int, int>(x, y, z)] = tar(tar(x - 1, y, z), tar(y - 1, z, x), tar(z - 1, x, y));
return mtiii[std::tr1::tuple<int, int, int>(x, y, z)];
}
}
■ このスレッドは過去ログ倉庫に格納されています