- 100 名前:80 mailto:sage [2006/11/12(日) 20:36:48 ]
- おっ、やっと荒らし規制明けた。
まぁ、私が扱ってたのは2バイト整数とその派生の固定小数点数だから。 >>92 今更ソースはないし、説明も面倒なんでCで書いてみた。 int main(int argc, char ** argv) { int x = atoi(argv[1]); int xn; int r; for (r = 1, xn = x; xn > 0; r += 2) { xn -= r; } r >>= 1; if (xn < 0) {// 切り上げなら不要 if (r * r - r >= x) --r;// 切り捨てなら不要 } printf("%d:%d\n", x, r); return 0; } 四捨五入しなくていいなら掛け算も使わないのが味噌屋根。
|

|