不使用乘法除法迴圈遞迴做累加操作

2021-07-10 15:58:28 字數 627 閱讀 9549

題目:求1+2+...+n,要求不能使用乘法除法、for、while、if、else、switch、case等關鍵字字及其條件判斷語句。

方法一:建構函式class temp

static int getsum()

static void reset()

};unsigned int temp::num = 0;

unsigned int temp::sum = 0;

方法二:虛函式
struct a;

a* arr[2];

struct a

};struct b : a

};

方法三:函式指標
typedef int(*fun)(int);

int s_teminator(int n)

int s_sum(int n)

; return arr[!!n](n - 1) + n;

}

方法四:類模板
template struct solusion_sum;};

template <> struct solusion_sum<1>

;};

不使用除法來做 a b 2

題目 不使用除法來做 a b 2 題目分析 在不使用除法來做兩數的除法時,而且是除以2,所以首先想到的就是資料的右移,右移就是使整數縮小一半,但是這裡要考慮兩數相除得到的不一定都是整數,所以要按情況來補所缺失的0.5.如下 define crt secure no warnings include ...

不使用乘法 除法或mod,實現兩數相除

被除數 除數 商 餘數 需要注意的問題 int 的範圍是 2 31,2 31 1 也就是 2147483648,2147483647 如果 2147483648 1結果會超出int 範圍。除法,乘法和mod都不能使用,那可以使用加減,移位。只需保留商即可 保證資料在int範圍。電腦做二進位制除法的時...

不使用乘法和除法和mod實現兩數相除

題目要求 給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數 dividend 除以除數 divisor 得到的商。整數除法的結果應當截去 truncate 其小數部分,例如 truncate 8.345 8 以及 trun...