[Game]代码游戏 计算题
输入2个int计算乘积备注 只需要考虑int范围内的计算结果即可
题目很简单对不对 很无聊对不对
所以 有一点点提高趣味性的小小的要求
不使用乘法(包括* *=)
不使用除法(包括* /=)
不使用加法(包括+ +=)
不使用减法(包括- -=)
让我看看谁的脑洞最深
#include <stdio.h> #include <stdlib.h> #include <time.h> int BitAdd(int a, int b) { int nCarry = a & b; // 进位 int nSumNoCarry = a ^ b; // 非进位 if (nCarry != 0) return BitAdd(nSumNoCarry, nCarry << 1); else return nSumNoCarry; } int BitMultiplication3(int a) { return BitAdd(a << 1, a); } int main() { srand(time(NULL)); const int MAXNUMBER = 100; int a = rand() % MAXNUMBER, b = rand() % MAXNUMBER; printf("\n ------------------ 加法 --------------------\n"); printf(" %d + %d = %d\n", a, b, BitAdd(a, b)); printf("\n -------------------乘法 a = b * 3 -------------------\n"); printf(" %d * 3 = %d\n", a, BitMultiplication3(a)); return 0; }