// 正数数除以3不用除法.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <math.h> int divide3(int N) { if (N >= -2 && N <= 2) return 0; if (N == 3) return 1; if (N == -3) return -1; int sign = 1; if (N < 0) sign = -1; N = abs(N); int DIV = N >> 1; while ((DIV << 2) > N) { DIV = DIV >> 1; } DIV = DIV + divide3(N-DIV*3); return DIV*sign; } int _tmain(int argc, _TCHAR* argv[]) { printf("%d \r\n", divide3(9)); printf("%d \r\n", divide3(1000)); printf("%d \r\n", divide3(18)); printf("%d \r\n", divide3(-23)); printf("%d \r\n", divide3(-44)); printf("%d \r\n", divide3(4609)); printf("%d \r\n", divide3(20)); printf("%d \r\n", divide3(-1)); return 0; }